怎么在代码中修改Win7的注册表

rigoxr 2010-08-07 05:34:14
从Windows Vista开始加入了个以系统管理员运行程序的机制.默认是不启用系统管理员的

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

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

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

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

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

求助!谢谢!
...全文
2102 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhl_xina2000 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
引用 6 楼 的回复:

谢谢各位,我在VS工程属性->链接器->清单文件->UAC执行级别
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...


好着,记下了
[/Quote]

继续顶,好用
北塔 2012-07-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

谢谢各位,我在VS工程属性->链接器->清单文件->UAC执行级别
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
[/Quote]

好着,记下了
宇影周邵 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 rigoxr 的回复:]

谢谢各位,我在VS工程属性->链接器->清单文件->UAC执行级别
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
[/Quote]

Good,学习了。
注册控件之类也可以使用此方法
rigoxr 2010-08-09
  • 打赏
  • 举报
回复
谢谢楼上两位,对我有很大启发啊~
马上去试试!!
rigoxr 2010-08-09
  • 打赏
  • 举报
回复
谢谢各位,我在VS工程属性->链接器->清单文件->UAC执行级别
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
dogfish001 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xman_78tom 的回复:]
正常的编程方法是无法跳过 UAC 的,不过还是有方法可以的(通常为病毒和恶意软件利用)。

例如,将程序分为两部分,一部分作为一个服务运行(以 Local System 身份运行),一部分以正常的 ui 程序运行;在这两个进程间实现 ipc,ui 程序将需要提升权限的操作交给服务执行。
[/Quote]
ding
xman_78tom 2010-08-08
  • 打赏
  • 举报
回复
正常的编程方法是无法跳过 UAC 的,不过还是有方法可以的(通常为病毒和恶意软件利用)。

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


drifter250771 2010-08-07
  • 打赏
  • 举报
回复
直接可以跳过那UAC岂不成了废物

18,124

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧