Sprawdź, czy aplikacja jest zainstalowana w rejestrze
W tej chwili używam tego, aby wyświetlić listę wszystkich aplikacji wymienionych w rejestrze dla 32-bitowych i 64-tych. Widziałem inne przykłady sprawdzania, czy aplikacja jest zainstalowana bez szczęścia.
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"));
}
}
Tak więc ten fragment wyszczególnia to wszystko w oknie konsoli, a to, co próbuję zrobić, to znaleźć jeden tytuł programu z listy nazw wyświetlanych, aby sprawdzić, czy jest zainstalowany.
Ostatnią rzeczą, jakiej próbowałem, było
if (subkey.Name.Contains("OpenSSL"))
Console.Writeline("OpenSSL Found");
else
Console.Writeline("OpenSSL Not Found");
Wszystko, co próbowałem, wróciło fałszywe lub fałszywe. Czy jest ktoś, kto może mi pokazać, jak po prostu zdobyć tytuł z listy?
Nie publikuj dobrze znanej funkcji prywatnej statycznej pustki IsApplicationInstalled (p_name). To nie działa dla mnie w ogóle.