Teraz używam tego do listy wszystkich aplikacji wymienionych w rejestrze dla 32bit & 64. Widziałem inne przykłady, jak sprawdzić, czy aplikacja jest zainstalowana bez szczęścia.Sprawdź, czy aplikacja jest zainstalowana w rejestrze
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"));
}
}
Więc ten fragment można znaleźć to wszystko w oknie konsoli i co próbuję zrobić, to tylko znaleźć jeden tytuł programu z listy nazw wyświetlanych aby sprawdzić, czy jest zainstalowany.
Ostatnią rzeczą próbowałem był
if (subkey.Name.Contains("OpenSSL"))
Console.Writeline("OpenSSL Found");
else
Console.Writeline("OpenSSL Not Found");
Wszystko starałem wróciła albo fałszywe lub fałszywie dodatni. Czy jest ktoś, kto może pokazać mi, jak wyłapać tytuł z listy?
Nie publikuj dobrze znanej funkcji prywatnej statycznej pustki IsApplicationInstalled (p_name). W ogóle mi to nie działa.
Jako marginesie: Musisz 'close()' z REGKEYS już otwarty (')' 'd .. mimo to jest kod zarządzany, to są niezarządzani zasoby i będzie przeciekać jeśli ciebie nie zamykaj ich. – canhazbits
Dziękuję za to FYI. – Faded
To brzmi jak może być całkiem przydatne. Jednak w zależności od tego, do czego chcesz go użyć, lepiej dopasować zainstalowany kod do konkretnej aplikacji, aby działał szybciej. – Sildoreth