Menemukan String yang Dialihkan

Topik ini membahas instruksi pemrograman untuk menemukan string registri yang dialihkan. Untuk informasi selengkapnya, lihat Penggunaan Pengalihan String Registri.

Memuat Nilai Registri Language-Neutral

Pada Windows Vista dan yang lebih baru, aplikasi MUI menggunakan nilai registri netral bahasa untuk memungkinkan akses ke string khusus bahasa yang disimpan dalam tabel sumber daya string. Untuk informasi selengkapnya, lihat "Membuat Sumber Daya Language-Neutral di Menggunakan Pengalihan String Registri".

Kode aplikasi yang membaca nilai bahasa netral dari registri harus memuat string dalam bahasa antarmuka pengguna yang benar dengan memanggil RegLoadMUIStringW. Jika menggunakan fungsi ini, aplikasi Anda tidak perlu berurusan secara eksplisit dengan pemuatan sumber daya.

Jika Anda memperbarui aplikasi yang ada ke penggunaan registri netral bahasa, Anda biasanya akan menyimpan nilai string yang ada, dilokalkan ke bahasa Inggris atau ke beberapa bahasa tunggal lainnya dalam registri, sebagai cadangan dan untuk kompatibilitas ke belakang. Menyimpan string harfiah dalam registri memungkinkan aplikasi untuk kembali ke string harfiah jika panggilan ke RegLoadMUIStringW gagal. Anda harus memutuskan cara menerapkan fallback seperti itu, karena MUI tidak memberikan dukungan untuk implementasi seperti itu.

Menggunakan Shell API untuk Menetapkan String Pintasan dari Registri

Aplikasi Anda dapat menggunakan API shell untuk membuat string untuk pintasan yang menautkan file atau folder di menu Mulai atau di desktop. Untuk informasi selengkapnya, lihat Buat Sumber Daya untuk String Pintasan di Menggunakan Pengarahan Ulang String Registri.

Aplikasi dapat menggunakan SHSetLocalizedName untuk memuat nama tampilan yang mematuhi MUI untuk pintasan. Ini harus menggunakan IShellLink::SetDescription untuk mengatur InfoTip terkait. Panggilan mendaftarkan string dengan registri. Pertimbangkan contoh berikut, yang "HKCR" mewakili kunci registri HKEY_CLASSES_ROOT:

HKCR,"CLSID\%CLSID_AntiSpyware%",,,"Windows AntiSpyware"

HKCR,"CLSID\%CLSID_AntiSpyware%","LocalizedString",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-104"

HKCR,"CLSID\%CLSID_AntiSpyware%","InfoTip",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-208"

Baris pertama menyediakan teks literal yang tidak diterjemahkan secara lokal untuk kompatibilitas mundur dan keserasian ke belakang. Baris kedua menunjukkan cara untuk mendaftarkan nama tampilan sesuai dengan MUI. Baris ini menunjukkan pengidentifikasi string 104 yang disimpan di Msascui.exe (untuk Windows XP) atau dalam file khusus bahasa terkait (untuk Windows Vista). Penunjuk string ini berhubungan dengan "Tempat Jaringan Saya". Baris ketiga dalam contoh menangani pendaftaran InfoTip. %CLSID_AntiSpyware% menentukan variabel lingkungan yang mewakili GUID yang cocok dengan pengidentifikasi kelas komponen ini.

Untuk contoh yang ditunjukkan di atas, aplikasi memanggil SHSetLocalizedName untuk menentukan jalur yang dapat dieksekusi untuk dua parameter pertama, dan menentukan idsRes sebagai "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104". Panggilan ke IShellLink::SetDescription, menentukan jalur untuk InfoTip sebagai "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208".

** Nama Tipe Dokumen yang Mudah Dicari di Registri

Pembuatan sumber daya untuk nama jenis dokumen yang ramah dibahas dalam Membuat Sumber Daya untuk Nama Jenis Dokumen yang Ramah di Menggunakan Pengalihan String Registri. Untuk mengkueri nama dokumen yang mudah diingat, aplikasi harus menggunakan IQueryAssociations::Init, diikuti dengan panggilan ke IQueryAssociations::GetString. Panggilan ke IQueryAssociations::Init menentukan jenis dokumen, misalnya, ".txt". Panggilan ke IQueryAssociations::GetString harus menentukan ASSOCSTR_FRIENDLYDOCNAME sebagai pengidentifikasi string.

Daftarkan String Snap-in Konsol Manajemen Microsoft yang Tidak Dibaca dari Registri

Aplikasi Anda dapat menggunakan snap-in Microsoft Management Console (MMC) untuk menghosting tugas manajemennya. Sebagian besar string ditangani sebagai sumber daya menggunakan pengaturan registri yang dijelaskan dalam "Membuat Sumber Daya String untuk Konsol Manajemen Microsoft" Snap-Ins di "Menggunakan Pengalihan String Registri" . Namun, beberapa snap-in mendaftarkan nilai string registri yang tidak dapat dibaca MMC dari registri. Dalam hal ini, snap-in harus mendapatkan nilai menggunakan antarmuka ISnapinAbout, yang kompatibel dengan MUI.

Mengatur Nama Tampilan dan Deskripsi untuk Layanan Windows dari Registri

Jika aplikasi MUI Anda menggunakan layanan Windows, aplikasi tersebut harus menampilkan nama dan deskripsi tampilan layanan. Sumber daya terkait dibahas dalam "Buat Sumber Daya String untuk Layanan Windows" di Menggunakan Pengalihan String Registri.

Untuk mengatur nama tampilan layanan, aplikasi MUI memanggil CreateService atau ChangeServiceConfig. Nama adalah string dengan format "@<PE-path>,-<stringID>[;<comment>]". Misalnya, jika layanan Anda diimplementasikan oleh file .dll dengan jalur %ProgramFiles%\%MyPath%\MyDll.dll, dan pengidentifikasi string dari nama tampilan khusus bahasa adalah 347, parameter ditentukan sebagai "@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347". Garis miring terbalik ganda (\\) diperlukan karena C/C++ menggunakan garis miring terbalik sebagai karakter escape dalam string.

Untuk mengatur deskripsi layanan spesifik bahasa, aplikasi MUI harus membuat anggota lpDescription dari struktur SERVICE_DESCRIPTION menunjukkan string dengan format "@<PE-path>,-<stringID>[;<comment>]", dengan merujuk pada pengidentifikasi string yang sesuai. Kemudian aplikasi memanggilChangeServiceConfig2 dengan parameter dwInfoLevel ditentukan sebagai SERVICE_CONFIG_DESCRIPTION dan parameter lpInfo ditentukan sebagai struktur SERVICE_DESCRIPTION.

Menemukan Sumber Daya Win32 PE

Menggunakan Pengalihan String pada Registri