从应用程序内访问Win 7上的HKLM注册表分支

时间:2010-06-30 05:24:14

标签: windows-7 uac registry

是否可以从应用程序写入Win 7中的HKLM注册表分支?

我的现有代码无法写入Win 7计算机上的HKLM注册表分支,而 能够在XP计算机上执行此操作。

如何在Win 7上允许应用程序对HKLM进行读/写访问,或者现在所有应用程序是否只使用HKCU?如果我需要以机器为基础而不是以用户为基础存储设置,该怎么办?

2 个答案:

答案 0 :(得分:4)

您需要决定是否正在编写管理应用程序,故意更改所有用户(通过写入HKLM)或普通应用程序的设置。如果您真的在编写管理应用程序,那么在其上放置一个requestedExecutionLevel requireAdministrator的清单。用户每次运行应用程序时都会收到UAC提示,但您对HKLM的写入将成功。或者,更改应用程序以写入HKCU或其他每个用户商店。

(不知道如何添加清单?告诉我你正在使用哪种语言/ IDE,我会尽力帮助。)

依靠虚拟化是一个坏主意。实现它是为了让未经证实的应用程序至少有点工作。有一天它会消失,而它就在这里并不是很好。

答案 1 :(得分:0)

Win 7使用Registry Virtualization

阅读文章并查看(HKEY_USERS\<User SID>_Classes\VirtualStore\Machine\Software)