Добрий день . Помогите пожалуста с кодом .
(Win vista) Dep off , Сам сижу под админом , е визуал студио тоже.
Если без if , тогда все работает
...
И если поменяю местами
тоже не работает
(Win vista) Dep off , Сам сижу под админом , е визуал студио тоже.
Если без if , тогда все работает
Если идет так :static private bool ExistanceCheck(string Start, string SubKeyPath, string KeyName, string DefaultVal)//true , changed , false (unexistante , other value)
{
RegistryKey rk = Registry.LocalMachine;//fcking c#
if (Start == "HKCU")
{
rk = Registry.LocalMachine;
}
else
{
rk = Registry.CurrentUser;
}
rk = rk.OpenSubKey(SubKeyPath);
object valor = new Object();
valor = rk.GetValue(KeyName);
try
{
if (valor.ToString() == null)
{
return false;
}
}
catch (Exception)
{
return false;
}
if (ValueCheck(Start, SubKeyPath, KeyName, DefaultVal) == true)
{
return true;
}
else
{
return false;
}
}
static private bool ValueCheck(string Start, string SubKeyPath, string KeyName, string DefaultVal)//true , default, false other
{
RegistryKey rk;
rk = Registry.LocalMachine;//fcking c#
if (Start == "HKLM")
{
rk = Registry.LocalMachine;
}
else if (Start == "HKCU")
{
rk = Registry.CurrentUser;
}
rk = rk.OpenSubKey(SubKeyPath);
object valor = rk.GetValue(KeyName);
if (valor.ToString() == DefaultVal)
{
return true;
}
return false;
}
Все ок . А если биру "HKLM"bool mrd = ExistanceCheck("HKCU", "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "DisableRegistryTools", "0");
Дает ошибку.bool mrd = ExistanceCheck("HKLM", "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "DisableRegistryTools", "0");
Object reference not set to an instance of an object.
valor = rk.GetValue(KeyName);
...
Код:
RegistryKey rk = Registry.LocalMachine;//fcking c#
rk = rk.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");
object valor = new Object();
valor = rk.GetValue("DisableRegistryTools");
Код:
RegistryKey rk = Registry.CurrentUser;//fcking c#
if (Start == "HKCU")
{
rk = Registry.CurrentUser;
}
else
{
rk = Registry.LocalMachine;
}