C# 未创建注册表项
我在创建/删除当前用户的密钥时没有遇到任何问题,但是每当我尝试LocalMachine时,都不会发生任何事情。我已经在app.manifest中添加了C# 未创建注册表项,c#,registry,C#,Registry,我在创建/删除当前用户的密钥时没有遇到任何问题,但是每当我尝试LocalMachine时,都不会发生任何事情。我已经在app.manifest中添加了(“requestedExecutionLevel=“requireAdministrator”uiAccess=“false”)。我缺少什么吗 private void button1_Click(object sender, EventArgs e) { RegistryKey rKey; rKe
(“requestedExecutionLevel=“requireAdministrator”uiAccess=“false”)
。我缺少什么吗
private void button1_Click(object sender, EventArgs e)
{
RegistryKey rKey;
rKey = Registry.LocalMachine.OpenSubKey("Software", true);
rKey.DeleteSubKey("test", true);
rKey.Close();
}
private void button2_Click(object sender, EventArgs e)
{
RegistryKey rKey;
rKey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
rKey.CreateSubKey("test");
rKey.Close();
}
如上所述,出于兼容性原因,64位Windows上的32位应用程序将
HKLM\SOFTWARE
内的HKLM\SOFTWARE\Wow6432Node
键虚拟化
如果您希望在HKLM\SOFTWARE
中实际创建密钥,则需要将应用程序重建为64位
然而,在我看来,只要您能够实际加载和保存密钥,密钥实际存储在何处并不重要。如果您正在寻求调试帮助,那么查看工作方法、非工作方法以及不工作内容的描述(例如,您没有在任何地方检查
null
).Wild guess-。我将尝试看似合理的64位解决方案。但工作方法只是将LocalMachine替换为CurrentUserName。您确定密钥存在吗?@user6722600创建应用程序的64位版本。64位Windows上的32位应用程序将其HKLM\软件密钥虚拟化在Wow6432Node密钥中。您真的不应该这样做调用.Close()
,应该使用使用(RegistryKey-rKey=Registry.LocalMachine.OpenSubKey(“SOFTWARE”,true)){rKey.CreateSubKey(“test”);}
因此,即使出现错误,对象也将被处理。忽略上一篇文章我只是太傻了,忘了检查一些东西。请对他的所有文章进行投票,并将其添加到答案列表中。非常感谢您的帮助!