Registry.SetValue() 不起作用
本文关键字:不起作用 SetValue Registry | 更新日期: 2023-09-27 17:55:16
我在 Windows 8.1(64 位)上运行我的应用,我想在 HKLM'Software'Microsoft'Windows'Current Version'Run
中创建一个值
这是我的代码:
try
{
// Setting
RegistryKey rk = Registry.LocalMachine;
// I have to use CreateSubKey
// (create or open it if already exits),
// 'cause OpenSubKey open a subKey as read-only
RegistryKey sk1 = rk.OpenSubKey("SOFTWARE''Microsoft''Windows''CurrentVersion''Run",true);
// Save the value
sk1.SetValue("Servicio de Respaldo de Base de Datos", System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName.Replace(".vshost", ""));
}
catch
{
MessageBox.Show("No se pudo Asignar el Inicio Automatico del servicio", "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
这永远不会进入 catch 块,因此没有例外,但永远不会创建密钥。
我已经尝试过微软的方法:
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE''Microsoft''Windows''CurrentVersion''Run");
key.SetValue("Servicio de Respaldo de Base de Datos", System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName.Replace(".vshost", ""));
key.Close();
但得到相同的结果。有人可以告诉我为什么会发生这种情况和/或我如何使其工作吗?
以防万一您仍在寻找答案:您是否有足够的权利写入HKLM?否则,该条目可能会在您不知情的情况下进入虚拟商店。您可以按照@PetSerAl建议在注册表中搜索您的值。