Cara Mengecualikan Aplikasi dari Kotak Dialog Buka Dengan untuk Jenis File yang Tidak Terkait

Ketika pengguna mencoba membuka file yang bukan anggota tipe file terdaftar apa pun (yaitu, jenis file yang tidak dikenal), atau ketika pengguna memilih Buka dengan atau Buka dengan -> Pilih program default dari menu pintasan file, Shell menyajikan submenu atau kotak dialog yang memungkinkan pengguna menentukan program yang digunakan untuk membuka file.

Secara default, aplikasi apa pun yang terdaftar sebagai subkunjung HKEY_CLASSES_ROOT\Aplikasi disajikan dalam kotak dialog Buka dengan. Aplikasi ini disajikan di Buka terlepas dari apakah aplikasi terdaftar untuk menangani jenis file.

Untuk mencegah aplikasi muncul di kotak dialog Buka dengan ketika aplikasi tidak boleh atau tidak dapat digunakan untuk membuka jenis file tertentu, gunakan salah satu dari dua teknik yang dijelaskan dalam topik ini.

Instruksi

Langkah 1:

Tambahkan entri NoOpenWith ke subkunjung aplikasi. Saat aplikasi menggunakan jenis file, Windows merekam informasi tersebut untuk membangun daftar Program yang Direkomendasikan. Daftar ini disajikan di Buka dengan submenu seperti yang ditunjukkan pada cuplikan layar berikut.

screen shot of shortcut menu with the open with submenu shown

Aplikasi yang direkomendasikan ini juga ditampilkan di bagian Program yang Direkomendasikan dari kotak dialog Buka dengan seperti yang ditunjukkan pada cuplikan layar berikut.

screen shot of the open with dialog box with recommended programs

Catatan

Jika aplikasi telah mendaftarkan dirinya di OpenWithList atau OpenWithProgIDs untuk jenis file, aplikasi akan muncul di daftar Program yang Direkomendasikan meskipun entri NoOpenWith diatur. Selain itu, ingatlah bahwa terlepas dari apakah aplikasi ditawarkan dalam daftar program yang direkomendasikan, pengguna dapat menelusuri file yang dapat dieksekusi secara manual.

 

Aplikasi dapat menonaktifkan pelacakan ini dengan menentukan nilai NoOpenWith di bawah subkunci aplikasi.

Entri NoOpenWith adalah nilai REG_SZ kosong seperti yang ditunjukkan dalam contoh berikut.

HKEY_CLASSES_ROOT
   Applications
      MyProgram.exe
         NoOpenWith

Mengatur entri NoOpenWith juga memiliki efek ini:

  • Mencegah penyematan file ke Jump List aplikasi melalui seret dan letakkan, kecuali aplikasi didaftarkan secara khusus untuk menangani jenis file tersebut.
  • Mencegah kotak dialog file umum dan panggilan apa pun ke fungsi SHAddToRecentDocs agar tidak menambahkan file apa pun ke Jump List aplikasi, kecuali aplikasi didaftarkan secara khusus untuk menangani jenis file tersebut.

Langkah 2:

Cara kedua untuk mencegah aplikasi muncul di kotak dialog Buka dengan adalah dengan menggunakan subkunjung SupportedTypes untuk secara eksplisit mencantumkan ekstensi jenis file yang dapat dibuka aplikasi. Ini mencegah aplikasi muncul di kotak dialog Buka dengan untuk jenis file yang tidak dapat dibuka. Ini juga menyebabkan aplikasi muncul dalam daftar Program yang Direkomendasikan seperti yang dibahas sebelumnya.

Metode ini sangat berguna jika aplikasi dapat menyimpan file sebagai jenis file tertentu tetapi tidak dapat membuka jenis file tersebut. Aplikasi juga harus mengatur bendera FOS_DONTADDTORECENT melalui IFileDialog::SetOptions saat memanggil kotak dialog Simpan . Ini mencegah item ditambahkan ke bagian Terbaru atau Sering dari Jump List. Ini juga memblokir aplikasi agar tidak dilacak di bawah OpenWithList.

Setiap ekstensi yang didukung ditambahkan sebagai entri di bawah subkunjuk SupportedTypes seperti yang ditunjukkan dalam contoh berikut. Entri berjenis REG_SZ atau REG_NULL, tanpa nilai terkait.

HKEY_CLASSES_ROOT
   Applications
      ApplicationName
         SupportedTypes
            .ext1
            .ext2
            .ext3

Jika subkey SupportedTypes disediakan, hanya file dengan ekstensi tersebut yang memenuhi syarat untuk disematkan ke Jump List aplikasi atau untuk dilacak dalam daftar tujuan Terbaru atau Sering aplikasi.

Entri NoOpenWith mengambil alih subkunci SupportedTypes dan menyembunyikan aplikasi dalam kotak dialog Buka dengan .