Memperluas Menu Pintasan
Mengklik kanan objek biasanya menyebabkan tampilan menu pintasan. Menu ini berisi daftar perintah yang dapat dipilih pengguna untuk melakukan berbagai tindakan pada objek. Bagian ini adalah pengantar menu pintasan untuk objek sistem file.
- Menu Pintasan untuk Objek Sistem File
- Kata Kerja Menu Pintasan
- Memperluas Menu Pintasan untuk Tipe File
- Memperluas Menu Pintasan untuk Objek Shell yang Telah Ditentukan Sebelumnya
- Mendaftarkan Aplikasi untuk Menangani Jenis File Arbitrer
- Memperluas Submenu Baru
Informasi tambahan tersedia di sini:
Saat pengguna mengklik kanan objek, seperti file, yang ditampilkan di Windows Explorer atau di desktop, menu pintasan muncul dengan daftar perintah. Pengguna kemudian dapat melakukan tindakan pada file, seperti membuka atau menghapusnya, dengan memilih perintah yang sesuai.
Karena menu pintasan sering digunakan untuk manajemen file, Shell menyediakan sekumpulan perintah default, seperti Potong dan Salin, yang muncul di menu pintasan untuk file apa pun. Perhatikan bahwa meskipun Open With adalah perintah default, itu tidak ditampilkan untuk beberapa jenis file standar, seperti .wav. Ilustrasi berikut dari sampel direktori Dokumen Saya, yang juga digunakan sebagai contoh dalam Mengkustomisasi Ikon, memperlihatkan menu pintasan default yang ditampilkan dengan mengklik kanan MyDocs4.xyz.
Alasan bahwa MyDocs4.xyz menunjukkan menu pintasan default adalah bahwa itu bukan anggota dari jenis file terdaftar. Di sisi lain, .txt adalah jenis file terdaftar. Jika Anda mengklik kanan salah satu file .txt, Anda akan melihat menu pintasan dengan dua perintah tambahan di bagian atasnya: Buka dan Cetak.
Setelah jenis file terdaftar, Anda dapat memperluas menu pintasannya dengan perintah tambahan. Mereka ditampilkan di atas perintah default ketika file apa pun dari jenis tersebut diklik kanan. Meskipun sebagian besar perintah yang ditambahkan dengan cara ini adalah perintah umum, seperti Cetak atau Buka, Anda bebas menambahkan perintah apa pun yang mungkin berguna bagi pengguna.
Semua yang diperlukan untuk memperluas menu pintasan untuk jenis file adalah membuat entri registri untuk setiap perintah. Pendekatan yang lebih canggih adalah menerapkan penangan menu pintasan, yang memungkinkan Anda memperluas menu pintasan untuk jenis file berdasarkan file demi file. Untuk informasi selengkapnya, lihat Membuat Penangan Menu Konteks.
Setiap perintah pada menu pintasan diidentifikasi dalam registri dengan kata kerjanya. Kata kerja ini sama dengan yang digunakan oleh ShellExecuteEx saat meluncurkan aplikasi secara terprogram. Untuk informasi lebih lanjut tentang penggunaan ShellExecuteEx, lihat diskusi dalam Meluncurkan Aplikasi.
Kata kerja adalah string teks sederhana yang digunakan oleh Shell untuk mengidentifikasi perintah terkait. Setiap kata kerja sesuai dengan string perintah yang digunakan untuk meluncurkan perintah di jendela konsol atau file batch (.bat). Misalnya, kata kerja terbuka biasanya meluncurkan program untuk membuka file. String perintahnya biasanya terlihat seperti ini:
"My Program.exe" "%1"
"%1" adalah tempat penampung standar untuk parameter baris perintah yang disediakan dengan nama file. Misalnya, ini dapat menentukan halaman tertentu untuk ditampilkan dalam tampilan bertab.
Catatan
Jika ada elemen string perintah yang berisi atau mungkin berisi spasi, elemen tersebut harus diapit dalam tanda kutip. Jika tidak, jika elemen berisi spasi, elemen tidak akan diurai dengan benar. Misalnya, "My Program.exe" akan meluncurkan aplikasi dengan benar. Jika Anda menggunakan Program Saya.exe, sistem akan mencoba meluncurkan "Saya" dengan "Program.exe" sebagai argumen baris perintah pertamanya. Anda harus selalu menggunakan tanda kutip dengan argumen seperti "%1" yang diperluas ke string oleh Shell, karena Anda tidak dapat yakin bahwa string tidak akan berisi spasi.
Kata kerja juga dapat memiliki string tampilan yang terkait dengannya, yang ditampilkan pada menu pintasan alih-alih string kata kerja itu sendiri. Misalnya, string tampilan untuk openas adalah Buka Dengan. Seperti string menu normal, termasuk ampersand (&) dalam string tampilan memungkinkan pemilihan keyboard perintah.
Secara umum, aplikasi bertanggung jawab untuk menyediakan string tampilan yang dilokalkan untuk kata kerja yang mereka tentukan. Namun, untuk memberikan tingkat kemandirian bahasa, sistem mendefinisikan set standar kata kerja yang umum digunakan yang disebut kata kerja kanonis. Kata kerja kanonis dapat digunakan dengan bahasa apa pun, dan sistem secara otomatis menghasilkan string tampilan yang dilokalkan dengan benar. Misalnya, string tampilan kata kerja terbuka akan diatur ke Buka pada sistem bahasa Inggris, dan ke Öffnen pada sistem Jerman.
Kata kerja kanonis meliputi:
Nilai | Deskripsi |
---|---|
buka | Membuka file atau folder. |
opennew | Membuka file atau folder di jendela baru. |
cetak | Mencetak file. |
Menjelajahi | Membuka Windows Explorer dengan folder terpilih. |
cari | Membuka kotak dialog Pencarian Windows dengan folder yang diatur sebagai lokasi pencarian default. |
openas | Membuka kotak dialog Buka Dengan . |
properti | Membuka lembar properti objek. |
Kata kerja printto juga kanonis tetapi tidak pernah ditampilkan. Ini memungkinkan pengguna untuk mencetak file dengan menyeretnya ke objek printer.
Saat pengguna mengklik kanan objek, menu pintasan berisi semua kata kerja normal. Namun, mungkin ada perintah yang ingin Anda dukung tetapi tidak ditampilkan di setiap menu pintasan. Misalnya, Anda dapat memiliki perintah yang tidak umum digunakan atau yang ditujukan untuk pengguna berpengalaman. Untuk alasan ini, Anda juga dapat menentukan satu atau beberapa kata kerja yang diperluas. Kata kerja ini juga merupakan string karakter dan mirip dengan kata kerja normal. Mereka dibedakan dari kata kerja normal dengan cara mereka terdaftar. Untuk memiliki akses ke perintah yang terkait dengan kata kerja yang diperluas, pengguna harus mengklik kanan objek sambil menekan tombol SHIFT. Kata kerja yang diperluas kemudian akan ditampilkan bersama dengan kata kerja normal.
Cara paling sederhana untuk memperluas menu pintasan untuk jenis file adalah dengan registri. Untuk melakukan ini, tambahkan subkey Shell di bawah kunci untuk ProgID aplikasi yang terkait dengan jenis file. Secara opsional, Anda dapat menentukan kata kerja default untuk jenis file dengan menjadikannya nilai default subkuntah Shell .
Kata kerja default ditampilkan terlebih dahulu pada menu pintasan. Tujuannya adalah untuk menyediakan Shell dengan kata kerja yang dapat digunakan ketika ShellExecuteEx dipanggil tetapi tidak ada kata kerja yang ditentukan. Shell tidak selalu memilih kata kerja default ketika ShellExecuteEx digunakan dalam mode ini. Untuk Shell versi 5.0 dan yang lebih baru, ditemukan pada sistem Windows 2000 dan yang lebih baru, Shell menggunakan kata kerja pertama yang tersedia dari daftar berikut. Jika tidak ada yang tersedia, operasi gagal.
- Kata kerja terbuka
- Kata kerja default
- Kata kerja pertama dalam registri
- Kata kerja openwith
Untuk versi Shell sebelum versi 5.0, hilangkan item ketiga.
Di bawah subkunci Shell, buat satu subkunci untuk setiap kata kerja yang ingin Anda tambahkan. Masing-masing subkunci ini akan memiliki nilai REG_SZ yang diatur ke string tampilan kata kerja. Anda dapat menghilangkan string tampilan untuk kata kerja kanonis karena sistem akan secara otomatis menampilkan string yang dilokalkan dengan benar. Jika Anda menghilangkan string tampilan untuk kata kerja nonkanonis, string kata kerja akan ditampilkan. Untuk setiap subkunci kata kerja, buat subkunci perintah dengan nilai default yang diatur ke string perintah.
Ilustrasi berikut ini memperlihatkan menu pintasan untuk tipe file .myp yang digunakan dalam Tipe File dan Kustomisasi Ikon. Sekarang telah terbuka, doit, cetak, dan cetak ke kata kerja pada menu pintasannya, dengan doit sebagai kata kerja default. Menu pintasan terlihat seperti ini.
Entri registri yang digunakan untuk memperluas menu pintasan yang diperlihatkan dalam ilustrasi sebelumnya adalah:
HKEY_CLASSES_ROOT
.myp
(Default) = MyProgram.1
MyProgram.1
(Default) = MyProgram Application
Shell
(Default) = doit
open
command
(Default) = C:\MyDir\MyProgram.exe "%1"
doit
(Default) = &Do It
command
(Default) = C:\MyDir\MyProgram.exe /d "%1"
print
command
(Default) = C:\MyDir\MyProgram.exe /p "%1"
printto
command
(Default) = C:\MyDir\MyProgram.exe /p "%1" "%2" %3 %4
Meskipun perintah Buka Dengan berada di atas pemisah pertama, perintah ini secara otomatis dibuat oleh sistem dan tidak memerlukan entri registri. Sistem secara otomatis membuat nama tampilan untuk kata kerja kanonis yang terbuka dan dicetak. Karena doit bukan kata kerja kanonis, doit diberi nama tampilan, "&Do It", yang dapat dipilih dengan menekan tombol D. Kata kerja printto tidak muncul pada menu pintasan, tetapi termasuk memungkinkan pengguna untuk mencetak file dengan menjatuhkannya pada ikon printer. Dalam contoh ini, %1 mewakili nama file dan %2 nama printer.
Kata kerja dapat ditekan melalui pengaturan kebijakan dengan menambahkan nilai SuppressionPolicy ke kunci kata kerja. Atur nilai SuppressionPolicy ke ID kebijakan. Jika kebijakan diaktifkan, kata kerja dan entri menu pintasan terkait ditekan. Untuk kemungkinan nilai ID kebijakan, lihat enumerasi PEMBATASAN.
Banyak objek Shell yang telah ditentukan sebelumnya memiliki menu pintasan yang dapat diperluas. Daftarkan perintah dengan cara yang sama seperti Anda mendaftarkan jenis file umum, tetapi gunakan nama objek yang telah ditentukan sebelumnya sebagai nama jenis file.
Daftar objek yang telah ditentukan sebelumnya dapat ditemukan di bagian Objek Shell yang telah ditentukan sebelumnya dari Membuat Penangan Ekstensi Shell. Objek Shell yang telah ditentukan sebelumnya yang menu pintasannya dapat diperluas dengan menambahkan kata kerja di registri ditandai dalam tabel dengan kata "Kata Kerja."
Bagian sebelumnya dari dokumen ini telah membahas cara menentukan item menu pintasan untuk tipe file tertentu. Antara lain, menentukan menu pintasan memungkinkan Anda menentukan bagaimana aplikasi terkait membuka anggota jenis file. Namun, seperti yang dibahas dalam Jenis File, aplikasi juga dapat mendaftarkan prosedur default terpisah yang akan digunakan ketika pengguna mencoba menggunakan aplikasi Anda untuk membuka jenis file yang belum Anda kaitkan dengan aplikasi. Topik ini dibahas di sini karena Anda mendaftarkan prosedur default dengan cara yang sama seperti Anda mendaftarkan item menu pintasan.
Prosedur default melayani dua tujuan dasar. Salah satunya adalah menentukan bagaimana aplikasi Anda harus dipanggil untuk membuka jenis file arbitrer. Anda dapat, misalnya, menggunakan bendera baris perintah untuk menunjukkan bahwa jenis file yang tidak diketahui sedang dibuka. Tujuan lainnya adalah untuk menentukan berbagai karakteristik jenis file, seperti item menu pintasan dan ikon . Jika pengguna mengaitkan aplikasi Anda dengan jenis file tambahan, jenis tersebut akan memiliki karakteristik ini. Jika jenis file tambahan sebelumnya dikaitkan dengan aplikasi lain, karakteristik ini akan menggantikan aslinya.
Untuk mendaftarkan prosedur default, tempatkan kunci registri yang sama dengan yang Anda buat untuk ProgID aplikasi Anda di bawah subkunci aplikasi HKEY_CLASSES_ROOT\Applications. Anda juga dapat menyertakan nilai FriendlyAppName untuk memberi sistem nama yang mudah diingat untuk aplikasi Anda. Nama ramah aplikasi juga dapat diekstrak dari file yang dapat dieksekusi, tetapi hanya jika nilai FriendlyAppName tidak ada. Fragmen registri berikut menunjukkan contoh prosedur default untuk MyProgram.exe yang menentukan nama yang mudah diingat dan beberapa item menu pintasan. String perintah menyertakan bendera /a untuk memberi tahu aplikasi bahwa ia membuka jenis file arbitrer. Jika Anda menyertakan subkuncu defaultIcon , Anda harus menggunakan ikon generik.
HKEY_CLASSES_ROOT
Applications
MyProgram.exe
FriendlyAppName = Friendly Name
shell
open
command
(Default) = C:\MyDir\MyProgram.exe /a "%1"
print
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1"
printto
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2" %3 %4
Saat pengguna membuka menu File di Windows Explorer, perintah pertama adalah Baru. Memilih perintah ini menampilkan submenu. Secara default, ini berisi dua perintah, Folder dan Pintasan, yang memungkinkan pengguna membuat subfolder dan pintasan. Submenu ini dapat diperluas untuk menyertakan perintah pembuatan file untuk jenis file apa pun.
Untuk menambahkan perintah pembuatan file ke submenu Baru, file aplikasi Anda harus memiliki jenis file yang terkait dengannya. Sertakan subkey ShellNew di bawah kunci untuk ekstensi nama file. Saat perintah Baru menu File dipilih, Shell akan menambahkannya ke submenu Baru. String tampilan perintah akan menjadi string deskriptif yang ditetapkan ke ProgID program.
Tetapkan satu atau beberapa nilai data ke subkunci ShellNew untuk menentukan metode pembuatan file. Nilai yang tersedia mengikuti.
Nilai | Deskripsi |
---|---|
Perintah | Menjalankan aplikasi. Ini adalah nilai REG_SZ yang menentukan jalur aplikasi yang akan dijalankan. Misalnya, Anda dapat mengaturnya untuk meluncurkan wizard. |
Data | Membuat file yang berisi data tertentu. Data adalah nilai REG_BINARY dengan data file. Data diabaikan jika NullFile atau FileName ditentukan. |
FileName | Membuat file yang merupakan salinan file tertentu. FileName adalah nilai REG_SZ , diatur ke jalur file yang sepenuhnya memenuhi syarat untuk disalin. |
NullFile | Membuat file kosong. NullFile tidak diberi nilai. Jika NullFile ditentukan, nilai Data dan FileName diabaikan. |
Ilustrasi berikut menunjukkan submenu Baru untuk jenis file .myp yang digunakan sebagai contoh dalam Jenis File dan Kustomisasi Ikon. Sekarang memiliki perintah, Aplikasi MyProgram. Saat pengguna memilih Aplikasi MyProgram dari submenu Baru , Shell membuat file bernama "New MyProgram Application.myp" dan meneruskannya ke MyProgram.exe.
Entri registri sekarang sebagai berikut:
HKEY_CLASSES_ROOT
.myp
(Default) = MyProgram.1
MyProgram.1
ShellNew
NullFile
MyProgram.1
(Default) = MyProgram Application
DefaultIcon
(Default) = C:\MyDir\MyProgram.exe,2
Shell
(Default) = doit
open
command
(Default) = C:\MyDir\MyProgram.exe "%1"
doit
(Default) = &Do It
command
(Default) = C:\MyDir\MyProgram.exe /d "%1"
print
command
(Default) = C:\MyDir\MyProgram.exe /p "%1"
printto
command
(Default) = C:\MyDir\MyProgram.exe /p "%1" "%2" %3 %4