日期:2014-05-17  浏览次数:20680 次

怎么在代码中修改Win7的注册表
从Windows Vista开始加入了个以系统管理员运行程序的机制.默认是不启用系统管理员的

我用VC写了一个访问修改Windouws注册表的程序,在XP上工作都很正常.

在Win7上可以修改HKEY_CURRENT_USER下的键值,没问题.

但是HKEY_LOCAL_MACHINE被视为敏感部位,再直接使用RegOpenKeyEx之类函数打开注册表会被拒绝.

对工程生成的.exe文件点右键"以管理员身份运行"可以执行注册表下的操作.

我想在代码中就直接赋予程序以管理员身份修改注册表,请问应该怎么做?

求助!谢谢!

------解决方案--------------------
http://www.kanwenzhang.com/software/Vista-tech/c/0963/10963.html
------解决方案--------------------
正常的编程方法是无法跳过 UAC 的,不过还是有方法可以的(通常为病毒和恶意软件利用)。

例如,将程序分为两部分,一部分作为一个服务运行(以 Local System 身份运行),一部分以正常的 ui 程序运行;在这两个进程间实现 ipc,ui 程序将需要提升权限的操作交给服务执行。