Kabuk ile hata ayıklama

Bu konu, Shell ve ad alanı uzantısı DLL'lerinin hata ayıklama yöntemlerini açıklamaktadır.

Kabuğu Hata Ayıklayıcı Altında Çalıştırma

Uzantınızda hata ayıklamak için, hata ayıklayıcıdan Kabuğu çalıştırmanız gerekir. Şu adımları izleyin:

  1. Uzantının projesini hata ayıklayıcıya yükleyin, ancak çalıştırmayın.

  2. Kabuk arayüzünü kapatın.

    • Windows Vista ve üzeri için:
      1. Başlangıç menüsünü görüntüleyin.
      2. CTRL+SHIFT tuşlarına basın ve Başlangıç menüsünün sağ yarısının arka planına sağ tıklayın.
      3. Görüntülenen menüden Çıkış Gezgini'ni seçin.
    • Windows XP için:
      1. Başlangıç menüsünden kapat'ı seçin.
      2. CTRL+ALT+SHIFT tuşlarına basın ve Windows Kapat iletişim kutusunda Yok'a tıklayın.

    Kabuk şu anda kapalı, ancak hata ayıklayıcı da dahil olmak üzere diğer tüm uygulamalar çalışmaya devam ediyor.

  3. Hata ayıklayıcıyı, uzantı DLL'sini Windows dizininden Explorer.exe çalıştıracak şekilde ayarlayın.

  4. Projeyi hata ayıklayıcıdan çalıştırın. Kabuk her zamanki gibi başlatılır, ancak hata ayıklayıcı Shell'in işlemine eklenir.

Kabuk Uzantılarını Çalıştırma ve Test Etme

Masaüstü ve görev çubuğunun durdurulmasını ve yeniden başlatılmasını önlemek için uzantılarınızı ayrı bir Windows Gezgini işleminde çalıştırabilir ve test edebilirsiniz. Uzantıları çalıştırırken ve test ederken masaüstünüz ve görev çubuğunuz kullanılabilir.

Bu özelliği etkinleştirmek için kayıt defterine aşağıdaki REG_DWORD girdisini ekleyin.

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  DesktopProcess = 1

Bu girişin etkili olması için oturumu kapatmanız ve yeniden oturum açmanız gerekir. Bu ayar, masaüstü ve görev çubuğu pencerelerinin tek bir Explorer.exe işleminde oluşturulmasına ve diğer tüm Gezgin ve klasör pencerelerinin farklı bir Explorer.exe işleminde açılmasına neden olur.

Bu ayar, uzantılarınızın çalıştırılmasını ve testini daha kullanışlı hale getirmenin yanı sıra, shell uzantılarıyla ilgili olduğu için masaüstünü daha sağlam hale getirir. Bu tür birçok uzantı (örneğin, kısayol menüsü uzantıları) masa üstü olmayan Explorer.exe işlemine yüklenir. Bu işlem sonlandırılırsa masaüstü ve görev çubuğu etkilenmez ve sonraki Gezgin veya klasör penceresi sonlandırılan işlemi yeniden oluşturur.

DLL'yi kaldırma

Kabuk, kullanım sayısı sıfır olduğunda, ancak DLL belirli bir süre boyunca kullanılmadığında otomatik olarak tüm DLL'leri boşaltır. Bu etkinlik dışı süre, özellikle bir Shell uzantısı DLL'sinde hata ayıklanırken bazen kabul edilemez derecede uzun olabilir. Kayıt defterine aşağıdaki bilgileri ekleyerek etkin olmayan süreyi kısaltabilirsiniz.

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  AlwaysUnloadDll