在windows7下,如何提升权限使用RegOpenKeyEx用KEY_WRITE参数

mmfeng 2011-11-24 11:49:28
对HKEY_LOCAL_MACHINE键,如果用KEY_READ参数没有问题: RegOpenKeyEx(HKEY_LOCAL_MACHINE,strKeyName.c_str(), 0,KEY_READ, &hKey)
但如要用到KEY_WRITE,因UAC限制,则打不开。如何让程序能使用KEY_WRITE ?
VS中可以通过修改选项让编译后的程序带有一个盾牌,运行后弹出提示要更改计算机,但在c++builder2010中如何做呢?
...全文
398 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmfeng 2011-11-24
  • 打赏
  • 举报
回复
加入了那个rc文件后,已在程序的Project Manager 中可看到manifest文件,内容也有,还要做其它操作么?直接run,但还是不行啊
mmfeng 2011-11-24
  • 打赏
  • 举报
回复
老大,按你的步骤做了,还是不行。还想问一下,那个 1 24 用法是什么?
ccrun.com 2011-11-24
  • 打赏
  • 举报
回复
另外,在XE2中,工程选项中增加了自定义manifest的功能,只需要指定一个已存在的*.manifest就可以了,很方便。
ccrun.com 2011-11-24
  • 打赏
  • 举报
回复
制作一个文本文件,内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>    
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>


存为123.manifest

再创建一个文本文件,内容如下:
1 24 "123.manifest"
存为123.rc

然后在C++Builder2010中打你的工程,选择菜单上的Project-->Add to project-->找到刚才创建的123.rc,添加进来编译就行了
ccrun.com 2011-11-24
  • 打赏
  • 举报
回复
1 24

1是资源的名称,可以随意,24是资源的类型,这个不能更改。必须是24

你如果安全是按照我的步骤做的,不可能不成功。自己再检查一下。
oldtab 2011-11-24
  • 打赏
  • 举报
回复
关注。
mmfeng 2011-11-24
  • 打赏
  • 举报
回复
这个rc文件还要不要用brcc32.exe 编译?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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