Таким образом в моем реестре у меня есть запись под "LocalMachine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run \" названный "Защита в сети Интернет COMODO", которая является моим брандмауэром. Теперь то, что я хотел бы знать, - то, как я могу заставить реестр проверять, существует ли та запись? Если это делает это, если не затем делают это. Я знаю, как проверить, существует ли подраздел "Выполнение", но не запись для "Защиты в сети Интернет COMODO", это - код, который я использовал, чтобы добраться, если подраздел существует.
using (RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"))
if (Key != null)
{
MessageBox.Show("found");
}
else
{
MessageBox.Show("not found");
}
Следующая ссылка должна прояснить это:
Как проверить, существует ли уже ключ / подключ реестра
Пример кода:
using Microsoft.Win32;
RegistryKey rk = Registry.LocalMachine.OpenSubKey("Software\\Geekpedia\\Test");
if(rk != null)
{
// It's there
}
else
{
// It's not there
}
Если вы ищете значение в подключе (это то, что вы подразумеваете под "записью"?), вы можете использовать RegistryKey.GetValue(string)
. Это вернет значение, если оно существует, и null, если его нет.
Например:
using (RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"))
if (Key != null)
{
string val = Key.GetValue("COMODO Internet Security");
if (val == null)
{
MessageBox.Show("value not found");
}
else
{
// use the value
}
}
else
{
MessageBox.Show("key not found");
}
Попробуйте это:
using (RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\COMODO Internet Security"))
{
if (Key != null)
MessageBox.Show("found");
else
MessageBox.Show("not found");
}