Если вы знаете полный путь к приложению, то вы можете использовать класс 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
Какую версию OS вы тестирования это на? – Rizowski
Windows 7, 64-бит. Я использовал целевую платформу платформы x86 для консольного приложения (в противном случае мне, вероятно, пришлось бы указать узел реестра Wow6432Node для Firefox, поскольку Firefox 32-разрядный). –
Хром.exe для меня (Windows 7 64bit) был на HKEY_LOCAL_MACHINE, а не HKEY_CURRENT_USER, мог бы также проверить оба местоположения на всякий случай, правильно? –