2013-01-13 16 views
5

私はASP.NETを使用していない通常のC#を使用しています。私はChromeとFirefoxのバージョンを入手できるかどうか疑問に思っていました。私はあなたがレジストリを介してバージョンを得ることができるIEのために知っている。私はChromeとFirefoxがその情報をレジストリに保存しないと言うことができます。ローカルでChromeとFirefoxのバージョンを取得するC#

ありがとうございます。

答えて

7

アプリケーションの完全なパスが分かっている場合は、System.Diagnostics.FileVersionInfoクラスを使用してバージョン番号を取得できます。ここで

は、レジストリからChromeとFirefoxののインストールパスを読み込み、簡単なコンソールアプリケーションだし、そのバージョン番号を出力します

using System; 
using System.Diagnostics; 
using Microsoft.Win32; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     object path; 
     path = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe", "", null); 
     if (path != null) 
      Console.WriteLine("Chrome: " + FileVersionInfo.GetVersionInfo(path.ToString()).FileVersion); 

     path = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe", "", null); 
     if (path != null) 
      Console.WriteLine("Firefox: " + FileVersionInfo.GetVersionInfo(path.ToString()).FileVersion); 
    } 
} 

出力例:

Chrome: 24.0.1312.52 
Firefox: 16.0.2 
+0

あなたのテストをやったOSのバージョンこれは? – Rizowski

+0

Windows 7,64ビット。私はコンソールアプリケーションのためにx86のデフォルトのプラットフォームターゲットを使用しました(そうでなければ、Firefoxは32ビットなので、Firefox用のWow6432Nodeレジストリノードを指定しなければならなかったでしょう)。 –

+1

私のためのchrome.exe(Windows 7 64bit)は、HKEY_CURRENT_USERの代わりにHKEY_LOCAL_MACHINE上にありました。 –

関連する問題