2013-01-13 1 views
5

Я просто использую обычный C#, а не ASP.NET. Мне было интересно, могу ли я получить версию для 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 для консольного приложения (в противном случае мне, вероятно, пришлось бы указать узел реестра Wow6432Node для Firefox, поскольку Firefox 32-разрядный). –

+1

Хром.exe для меня (Windows 7 64bit) был на HKEY_LOCAL_MACHINE, а не HKEY_CURRENT_USER, мог бы также проверить оба местоположения на всякий случай, правильно? –

Смежные вопросы