2011-09-27 5 views
10

私はアプリとそのシンプルなものを構築しています。私はそれがプレーンな英語とアーキテクチャでos情報を表示し、クッキーを削除する機能と追加しない機能を追加します。初心者のためにC#を使用してインストールされたブラウザを確認する方法

私が執着したのはブラウザ検出部です。誰かが、まともなチュートリアルやトピックを教えてくれますか?ありがとう。

編集:私は最終的には、以下のHCBが提供するスニペットと他人からのコメントを使用して(おかげでみんなを)いくつかの作業コードをスクラッチアウトするために管理 OK。これまでのところ、私が、私は、私は同じことやろうとしているそれらのために持っているもののidシェアを考えたい正確に何やっている:私の極端な迷惑に

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が現地で自分のブラウザをインストールすることに気づきましたアプリデータ。私は再び個別のコードを書いてチェックこれを動作するように管理さ:

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

EDIT2:はそれがOKでなければならないので、ChromeのCurrentUserは、数人の友人のために正常に動作するよう確認します。このよう

+2

可能複製(http://stackoverflow.com/questions/2370732/how-to-find-all-the [マシンにインストールされているすべてのブラウザの検索方法] -browsers-on-a-machine) –

+0

重複した質問への回答は、ここへのリンクです:http://rhizohm.net/irhetoric/post/2009/04/03/0a-Finding-All-Installed- Windows-XP-and-Vista-ndash3b-64bitに気をつけてください!0a-.aspx私はあなたがこれより簡単になるとは思わない。 –

+0

私はそれを読んだが、私は彼の「ブラウザ」クラスが何の目的であるか理解していない。彼のブラウザクラスは何を含んでいますか?そして私もそれを作成する必要がありますか? – BrandNewDev

答えて

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(); 
+1

その場所を確認し、HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstallをチェックする点の違いは何ですか?明白なものを除いて。 – BrandNewDev

+3

ブラウザだけでなく、インストールされているすべてのプログラム(アンインストール可能)を一覧表示します。したがって、ユーザーがインストールした可能性のあるものを見逃してしまう可能性がある、一致する「受け入れられた」ブラウザのリストが必要になります。 –

+0

OKですので、StartMenuInternetは厳密にブラウザですか?そうですか。だから、browserKeys.GetSubKeyNames()は名前を取り、文字列配列に格納します。配列を "firefox"などのものを探しながら繰り返しますか?私が尋ねる唯一の理由は、それを行うコードを完成させるために私がしばらく時間を取ることになるからです。私は完全な初心者なので、試行錯誤を繰り返しています。ありがとう。 – BrandNewDev

関連する問題