Ни одно из решений здесь не сработало для меня, я все еще получал нулевое значение из моего реестра.Я наконец нашел решение, которое сработало для меня, основанное на объединении ответов выше.Спасибо всем за указание в правильном направлении.
Я ценю, что я опаздываю на вечеринку, но я подумал, что это может помочь другим, если вышеуказанные решения не работают для них.
Эта функция является частью класса:
/// <summary>
/// Gets the specified setting name.
/// </summary>
/// <param name="settingName">Name of the setting.</param>
/// <returns>Returns Setting if the read was successful otherwise, "undefined".</returns>
public static string get(string settingName)
{
RegistryKey key;
if (Environment.Is64BitOperatingSystem)
key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\MyCompany\MyProductName", false);
else
key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\MyCompany\MyProductName", false);
try
{
String value = (String)key.GetValue(settingName);
return value;
}
catch
{
// Null is not returned as in this case, it is a valid value.
return "undefined";
}
finally
{
key.Close();
}
}