Этот код ниже проверяет, работает ли MySQL, работает отлично.Чтение реестра DWORD
public bool MySql()
{
try
{
using (var key = Registry.CurrentUser.OpenSubKey("Software\\MySQL AB\\MySQL Server 5.6"))
{
var keyObject = key?.GetValue("installed");
var keyToString = keyObject?.ToString();
if (keyToString == "1")
return true;
}
return false;
}
catch (Exception)
{
return false;
}
}
Однако, используя тот же код, я пытаюсь проверить, установлен ли OpenSSL.
public bool OpenSsl()
{
try
{
using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OpenSSL (64-bit)_is1"))
{
var keyObject = key?.GetValue("NoModify");
var keyToString = keyObject?.ToString();
if (keyToString == "1")
return true;
}
return false;
}
catch (Exception)
{
return false;
}
}
Установка контрольных точек в коде показала, что ключ возвращает нуль. Я не знаю, почему. Да, путь правильный.
Возможно, вы читаете неправильный реестр. Является ли это записью в 64-битном реестре или в 32-разрядном реестре? https://msdn.microsoft.com/en-us/library/windows/desktop/ms724072(v=vs.85).aspx – Ben