Verifique se o aplicativo está instalado no registro

Agora eu uso isso para listar todos os aplicativos listados no registro para 32 bits e 64. Eu vi os outros exemplos de como verificar se um aplicativo é instalado sem qualquer sorte.

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"));
    }
}

Portanto, este snippet lista tudo na janela do console e o que eu estou tentando fazer é apenas encontrar um título de programa fora da lista de nomes de exibição para ver se ele está instalado.

A última coisa que tentei foi

if (subkey.Name.Contains("OpenSSL"))
    Console.Writeline("OpenSSL Found");
else
    Console.Writeline("OpenSSL Not Found");

Qualquer coisa que eu tentei voltou falso ou falso positivo. Existe alguém que possa me mostrar como pegar um título da lista?

Por favor, não publique a função IsApplicationInstalled (p_name) estática privada bem conhecida. Não funciona para mim.

questionAnswers(4)

yourAnswerToTheQuestion