Сейчас я использую это, чтобы перечислять все приложения, перечисленные в реестре для 32 бит и 64. Я видел другие примеры того, как проверить, установлено ли приложение без везения.
string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey);
if (key != null)
{
foreach (String a in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(a);
Console.WriteLine(subkey.GetValue("DisplayName"));
}
}
registryKey = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall";
key = Registry.LocalMachine.OpenSubKey(registryKey);
if (key != null)
{
foreach (String a in key.GetSubKeyNames())
{
RegistryKey subkey = key.OpenSubKey(a);
Console.WriteLine(subkey.GetValue("DisplayName"));
}
}
Итак, этот фрагмент отображает все это в окне консоли, и я пытаюсь сделать это просто найдите одно название программы из списка отображаемых имен, чтобы узнать, установлен ли он.
Последнее, что я пробовал, было
if (subkey.Name.Contains("OpenSSL"))
Console.Writeline("OpenSSL Found");
else
Console.Writeline("OpenSSL Not Found");
Все, что я попробовал, вернулось либо ложно, либо ложно. Есть ли кто-нибудь, кто может показать мне, как просто захватить название из списка?
Пожалуйста, не публикуйте известную функцию private static void IsApplicationInstalled (p_name). Это не работает для меня вообще.