похоже, вы проверяете не то. Вы спрашиваете, является ли ключ реестра по этому пути нулевым, и если это так, то Java установлена. Я считаю, что вы хотите проверить, что ключ не null. Если они имеют ключ , а не ноль, то ключ реестра Java найден, и, следовательно, Java установлена.
Кроме того, я хочу упомянуть, что вам необходимо утилизировать промежуточный ключ в том случае, если он найден. Итак, ваш код должен выглядеть так:
RegistryKey key = null;
try
{
key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment\\");
if (key != null)
{
return true;
}
}
finally
{
if (key != null)
{
key.Dispose();
}
}