Bagikan melalui


Penelusuran kesalahan dengan Shell

Topik ini menjelaskan cara men-debug Shell dan DLL ekstensi namespace.

Menjalankan Shell Di Bawah Debugger

Untuk men-debug ekstensi, Anda perlu menjalankan Shell dari debugger. Ikuti langkah-langkah berikut:

  1. Muat proyek ekstensi ke debugger, tetapi jangan jalankan.

  2. Matikan Shell.

    • Untuk Windows Vista dan yang lebih baru:
      1. Tampilkan menu Mulai .
      2. Tekan CTRL+SHIFT dan klik kanan pada latar belakang bagian kanan menu Mulai .
      3. Dari menu yang muncul, pilih Exit Explorer.
    • Untuk Windows XP:
      1. Dari menu Mulai , pilih Matikan.
      2. Tekan CTRL+ALT+SHIFT, dan klik Tidak dalam kotak dialog Matikan Windows .

    Shell sekarang dimatikan, tetapi semua aplikasi lain masih berjalan, termasuk debugger.

  3. Atur debugger untuk menjalankan DLL ekstensi dengan Explorer.exe dari direktori Windows .

  4. Jalankan proyek dari debugger. Shell akan diluncurkan seperti biasa, tetapi debugger akan dilampirkan ke proses Shell.

Menjalankan dan Menguji Ekstensi Shell

Anda dapat menjalankan dan menguji ekstensi Anda dalam proses Windows Explorer terpisah untuk menghindari berhenti dan memulai ulang desktop dan taskbar. Desktop dan taskbar Anda masih dapat digunakan saat Anda menjalankan dan menguji ekstensi.

Untuk mengaktifkan fitur ini, tambahkan entri REG_DWORD berikut ke registri.

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  DesktopProcess = 1

Agar entri ini berlaku, Anda harus log keluar dan masuk lagi. Pengaturan ini menyebabkan jendela desktop dan bilah tugas dibuat dalam satu proses Explorer.exe dan semua jendela Explorer dan folder lainnya dibuka dalam proses Explorer.exe yang berbeda.

Selain membuat menjalankan dan menguji ekstensi Anda lebih nyaman, pengaturan ini juga membuat desktop lebih kuat karena berkaitan dengan ekstensi Shell. Banyak ekstensi tersebut (ekstensi menu pintasan, misalnya) akan dimuat ke dalam proses Explorer.exe nondesktop. Jika proses ini berakhir, desktop dan taskbar tidak akan terpengaruh, dan jendela Explorer atau folder berikutnya akan membuat kembali proses yang dihentikan.

Membongkar DLL

Shell secara otomatis membongkar DLL apa pun ketika jumlah penggunaannya nol, tetapi hanya setelah DLL belum digunakan untuk jangka waktu tertentu. Periode tidak aktif ini mungkin kadang-kadang tidak dapat diterima, terutama ketika DLL ekstensi Shell sedang di-debug. Anda dapat mempersingkat periode tidak aktif dengan menambahkan informasi berikut ke registri.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AlwaysUnloadDll