2011-09-27 20 views
10

Bir uygulama yapıyorum ve basit bir tane, tüm yapmak istediğim, sade ingilizce ve mimaride os bilgisini görüntülemek ve yüklü tarayıcıları kontrol etmek ve sonra 'çerezleri silmek için yeteneği ekleyemezsiniz ve ne değildir.Yeni başlayanlar için C# kullanarak yüklü tarayıcılar nasıl kontrol edilir

Sıkıştığım şey tarayıcı algılama kısmıdır. Birisi bana bazı iyi öğreticiler veya nasıl tos işaret edebilir? Teşekkürler.

Düzenleme: başardı Tamam nihayet aşağıda HCB ve diğerleri (teşekkürler herkes) yorumlarına tarafından sağlanan parçacığını kullanarak bazı çalışma kod kazımak için. Şimdiye kadar ben bu yüzden aynı şeyi yapmaya çalışıyor olanlar için ne id payını düşünce tam olarak ne istediğini yapıyor: my aşırı sıkıntı için

RegistryKey browserKeys; 

     browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet"); 

     if (browserKeys == null) 
     { 
      browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); 
     } 

     string[] browserNames = browserKeys.GetSubKeyNames(); 

     foreach (string browser in browserNames) 
     { 
      using (RegistryKey tempKey = browserKeys.OpenSubKey(browser)) 
      { 
       foreach (string keyName in tempKey.GetValueNames()) 
       { 
        if (tempKey.GetValue(keyName).ToString() == "Internet Explorer") 
        { 
         internetExplorerButton.Enabled = true; 
         internetExplorerButton.BackgroundImage = Properties.Resources.iExplorer; 

         if (internetExplorerButton.Enabled == true) 
         { 
          Label ieLabel = new Label(); 
          ieLabel.Text = "Found!"; 
          explorerLable.Text = ieLabel.Text; 
         } 
        } 

, Google Local tarayıcılarını yüklemek istediğinizi fark Uygulama verisi. Yine ayrı kod yazmak ve kontrol bu işe başardı:

Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Google\Update\Clients"); 

Edit2: Tamam olmalıdır kadar Chrome için CurrentUser birkaç arkadaş çok iyi çalışıyor görünüyor denetleniyor. Bunun gibi

+2

olası yinelenen (http://stackoverflow.com/questions/2370732/how-to-find-all-the [bir makinede yüklü tüm tarayıcıları nasıl bulunur] -bunlar-on-a-makine-yüklü) –

+0

Yinelenen sorunun cevabı burada bir bağlantıdır: http://rhizohm.net/irhetoric/post/2009/04/03/0a-Finding-All-Installed- Tarayıcılar-in-Windows-XP-ve-Vista-ndash3b-beware-64bit! 0a-.aspx Bunun daha basit olacağını düşünüyorum. –

+0

Bunu okudum ama 'Tarayıcı' sınıfının hangi amaca hizmet ettiğini anlamıyorum. Tarayıcı sınıfı ne içerir? Ayrıca bir tane oluşturmam gerekli mi? – BrandNewDev

cevap

12

:

RegistryKey browserKeys; 
//on 64bit the browsers are in a different location 
browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet"); 
if (browserKeys == null) 
    browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); 

string[] browserNames = browserKeys.GetSubKeyNames(); 
ait
+1

Bu konumu denetleme ve HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall'ı denetleme arasındaki fark nedir? Açıktan farklı olarak. – BrandNewDev

+3

Bu, yalnızca yüklü olan tüm yüklü programları (bu kaldırılabilir) listeler. Bu nedenle, kullanıcıların kabul etmiş olabileceklerini gözden kaçırma potansiyeline karşı, eşleştirmek için 'kabul edilen' tarayıcıların bir listesine ihtiyacınız var. –

+0

Tamam, StartMenuInternet kesinlikle tarayıcılar mı? Anlıyorum. Bu yüzden browserKeys.GetSubKeyNames() isimleri alır ve bunları bir dizi dizisinde saklar, sadece "firefox" dizisini seyrederim mi yoksa böyle bir şey mi? Sormamın tek nedeni, bunu yapmak için kodu mükemmelleştirmek için biraz zaman harcayacağıdır, ben tam bir acemi oldum, bu yüzden heh almaya kadar deneme ve yanılma olacak. Teşekkürler. – BrandNewDev

İlgili konular