2016-08-16 114 views
2

我已经没有创建/删除CurrentUser键的麻烦,但每当我尝试LocalMachine什么都不会发生。我已将("requestedExecutionLevel level="requireAdministrator" uiAccess="false")添加到app.manifest。我错过了什么吗?请让我知道,如果这是一个代码第一次海报太长。注册表项没有被创建

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(); 
    } 
+0

如果您正在寻求调试帮助,那么查看工作方法,而不是工作方法和不工作的描述(例如,您没有在任何地方检查'null')会有帮助。狂猜 - [64位问题](http://stackoverflow.com/q/1268715/1997232)。 – Sinatr

+0

我会尝试看似合理的64位解决方案。但工作方法只是用CurrentUser – user6722600

+0

取代LocalMachine,你确定密钥存在吗? – Steve

回答

0

如上注释所讨论的,在64位的Windows 32位应用程序虚拟化出于兼容性原因内部HKLM\SOFTWARE\Wow6432NodeHKLM\SOFTWARE键。

如果您想要在HKLM\SOFTWARE之内实际创建密钥,则需要将应用程序重建为64位。

然而,在我看来,只要你真的可以加载和保存密钥,那么它的存储位置实际上就是

+0

忽略最后一篇文章,我只是愚蠢忘了检查一些东西。请投票他的所有帖子,并将其添加到答案列表非常感谢您的帮助! – user6722600