Bagikan melalui


Cara Membuat Menu Bertingkat dengan Entri Registri ExtendedSubCommandsKey

Di Windows 7 dan yang lebih baru, Anda dapat menggunakan subkunci ExtendedSubCommandsKey untuk membuat menu kaskading yang diperluas.

Cuplikan layar berikut adalah contoh menu kaskading yang diperluas.

cuplikan layar memperlihatkan menu kaskading yang diperluas untuk perangkat

Karena HKEY_CLASSES_ROOT adalah kombinasi dari HKEY_CURRENT_USER dan HKEY_LOCAL_MACHINE, Anda dapat mendaftarkan subverb di bawah \ subkunciHKEY_CURRENT_USER KelasPerangkat Lunak\. Keuntungan melakukannya adalah izin yang ditingkatkan tidak diperlukan. Asosiasi file lain dapat menggunakan kembali seluruh kumpulan kata kerja ini dengan menentukan subkunci ExtendedSubCommandsKey yang sama. Jika Anda tidak perlu menggunakan kembali kumpulan kata kerja ini, Anda dapat mencantumkan kata kerja di bawah induk. Dalam hal ini, pastikan nilai default induk kosong, seperti yang diilustrasikan dalam contoh entri registri di bagian ini.

Petunjuk

Langkah 1:

Buat subkunci di bawah HKEY_CLASSES_ROOT\ProgID\shell\CascadeMenuKey dan beri nama CascadeMenuKey seperti CascadeTest, misalnya. Kemudian tambahkan entri MUIVerb jenis REG_SZ dan beri nama seperti Test Cascade Menu 2, seperti yang diilustrasikan dalam contoh registri berikut.

HKEY_CLASSES_ROOT
   txtfile
      shell
         CascadeTest
            MUIVerb = Test Cascade Menu 2

Langkah 2:

Di bawah subkunci CascadeTest yang Anda buat, tambahkan subkunci ExtendedSubCommandsKey , lalu tambahkan subperintah dokumen (dari jenis REG_SZ); misalnya:

HKEY_CLASSES_ROOT
   txtfile
      Shell
         Test Cascade Menu 2
            (Default)
            ExtendedSubCommandsKey
               Layout
               Properties
               Select all

Pastikan bahwa nilai default subkunjuk Test Cascade Menu 2 kosong, dan ditampilkan sebagai (nilai tidak diatur).

Langkah 3:

Isi subverb menggunakan salah satu implementasi kata kerja statis berikut. Perhatikan bahwa subkunci CommandFlags mewakili nilai EXPCMDFLAGS. Jika Anda ingin menambahkan pemisah sebelum atau sesudah item menu kaskade, gunakan ECF_SEPARATORBEFORE (0x20) atau ECF_SEPARATORAFTER (0x40). Untuk deskripsi bendera Windows 7 dan yang lebih baru ini, lihat IExplorerCommand::GetFlags. ECF_SEPARATORBEFORE hanya berfungsi untuk item menu tingkat atas. MUIVerb berjenis REG_SZ, dan CommandFlags berjenis REG_DWORD.

HKEY_CLASSES_ROOT
   txtile
      Shell
         Test Cascade Menu 2
            (Default)
            ExtendedSubCommandsKey
               Shell
                  cmd1
                     MUIVerb = Notepad
                     command
                        (Default) = %SystemRoot%\system32\notepad.exe %1
                  cmd2
                     MUIVerb = Wordpad
                     CommandFlags = 0x20
                     command
                        (Default) = C:\Program Files\Windows NT\Accessories\wordpad.exe %1

Keterangan

Cuplikan layar berikut adalah ilustrasi contoh entri kunci registri sebelumnya.

cuplikan layar memperlihatkan contoh menu berskala memperlihatkan pilihan notepad dan wordpad