我用VC写了一个访问修改Windouws注册表的程序,在XP上工作都很正常.
在Win7上可以修改HKEY_CURRENT_USER下的键值,没问题.
但是HKEY_LOCAL_MACHINE被视为敏感部位,再直接使用RegOpenKeyEx之类函数打开注册表会被拒绝.
对工程生成的.exe文件点右键"以管理员身份运行"可以执行注册表下的操作.
我想在代码中就直接赋予程序以管理员身份修改注册表,请问应该怎么做?
求助!谢谢!
10 个解决方案
#1
直接可以跳过那UAC岂不成了废物
#3
正常的编程方法是无法跳过 UAC 的,不过还是有方法可以的(通常为病毒和恶意软件利用)。
例如,将程序分为两部分,一部分作为一个服务运行(以 Local System 身份运行),一部分以正常的 ui 程序运行;在这两个进程间实现 ipc,ui 程序将需要提升权限的操作交给服务执行。
例如,将程序分为两部分,一部分作为一个服务运行(以 Local System 身份运行),一部分以正常的 ui 程序运行;在这两个进程间实现 ipc,ui 程序将需要提升权限的操作交给服务执行。
#4
谢谢楼上两位,对我有很大启发啊~
马上去试试!!
马上去试试!!
#5
ding
#6
谢谢各位,我在VS工程属性->链接器->清单文件->UAC执行级别
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
#7
Good,学习了。
注册控件之类也可以使用此方法
#8
#9
好着,记下了
#10
继续顶,好用
#1
直接可以跳过那UAC岂不成了废物
#2
#3
正常的编程方法是无法跳过 UAC 的,不过还是有方法可以的(通常为病毒和恶意软件利用)。
例如,将程序分为两部分,一部分作为一个服务运行(以 Local System 身份运行),一部分以正常的 ui 程序运行;在这两个进程间实现 ipc,ui 程序将需要提升权限的操作交给服务执行。
例如,将程序分为两部分,一部分作为一个服务运行(以 Local System 身份运行),一部分以正常的 ui 程序运行;在这两个进程间实现 ipc,ui 程序将需要提升权限的操作交给服务执行。
#4
谢谢楼上两位,对我有很大启发啊~
马上去试试!!
马上去试试!!
#5
ding
#6
谢谢各位,我在VS工程属性->链接器->清单文件->UAC执行级别
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
设置为highestAvailable(/level='highestaAvailable')就OK了
再编译生成的程序图标上都带了一个盾牌,运行时就提示是否启用管理员权限...
选择"是"运行程序后可以对注册表进行任意修改...
#7
Good,学习了。
注册控件之类也可以使用此方法
#8
#9
好着,记下了
#10
继续顶,好用