程序以管理员身份运行?

sczyq 2009-08-14 08:54:57
当然是 C++Builder 生成的EXE文件。

在 Vista 及以上的操作系统测试。

我看了 SetupFactory 生成的安装程序总是在图标上加了“盾牌”,也就是双击执行时总是“以管理员身份运行”。

但 C++Builder 生成的EXE文件应该怎么做。(正在做在线安装程序)

...全文
1160 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sczyq 2012-10-31
  • 打赏
  • 举报
回复
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator" // 这是关键
uiAccess="false"/>
</requestedPrivileges>
</security>
大_爱 2012-10-30
  • 打赏
  • 举报
回复
VS中如何做啊。或者DEVC++如何做啊。
truelove7283159 2009-08-16
  • 打赏
  • 举报
回复
顶一下,顺便学习.
sczyq 2009-08-16
  • 打赏
  • 举报
回复
问题已经圆满解决,感谢 CCRUN
ccrun.com 2009-08-16
  • 打赏
  • 举报
回复
取消工程选项中的Enable runtime themes, 将以下XML以24的命名加入工程中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="CodeGear RAD Studio"
version="11.0.2902.10471"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
pan2293374 2009-08-16
  • 打赏
  • 举报
回复
thanks
sczyq 2009-08-16
  • 打赏
  • 举报
回复
资源24有重复? 工程中是否加了多个资源?


因为默认有一个与项目同名的 res, 检查该 res 文件内也有相同的 XML 如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="CodeGear RAD Studio"
version="11.0.2902.10471"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


与前面的很相似。

修改工程项目的选项:Options -> Application 节点:

选项:Enable runtime themes

取消后编译,无以上警告,上面的 XML 在项目资源文件 res 中也不再存在!




fairchild811 2009-08-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ccrun 的回复:]
楼上又从google搜索的吧, 利用搜索引擎的功力可是越来越强了.

Google 搜索"ShellExecuteExW lpVerb", 打开第一个链接, 下面的蓝色字体, 一字不差.
[/Quote]

网上搜索有问题吗?论坛规定不允许吗?

.manifest也可以在网上搜索到,当然我不是说你是搜的。

你会的知识也是从书本上学来的吧,和网上有很大区别吗?
ccrun.com 2009-08-15
  • 打赏
  • 举报
回复
楼上又从google搜索的吧, 利用搜索引擎的功力可是越来越强了.

Google 搜索"ShellExecuteExW lpVerb", 打开第一个链接, 下面的蓝色字体, 一字不差.
bob_zsj 2009-08-15
  • 打赏
  • 举报
回复
学习了
fairchild811 2009-08-15
  • 打赏
  • 举报
回复
明白妖哥的意思了,有错就改。。。
ccrun.com 2009-08-15
  • 打赏
  • 举报
回复
资源24有重复? 看看工程中是否加了多个资源?
sczyq 2009-08-15
  • 打赏
  • 举报
回复
忘了说明,编译时只时收到了以下警告,不知是否重要?

[ILINK32 Warning] Warning: Duplicate resource: Type 24 (user-defined), ID 1; File ....\RELEASE\RUNASADMIN.RES resource kept; file ....\VFS2D2.TMP resource discarded.
CACACACACA 2009-08-15
  • 打赏
  • 举报
回复
mark
sczyq 2009-08-15
  • 打赏
  • 举报
回复
的确,“ShellExecuteExW lpVerb的参数可以传入runas命令。”对我无太多帮助。

只因为是安装程序,即只能是一个EXE文件,不可能有太多的文件。

也不是程序内部调用,因此也不可能有任何参数。

CCRUN 的办法,我已经测试,程序在 Win2003 中编译,COPY 到 Windows7 中,程序图标已经出现了“以管理员身份运行”的盾牌。

[ILINK32 Warning] Warning: Duplicate resource: Type 24 (user-defined), ID 1; File ....\RELEASE\RUNASADMIN.RES resource kept; file ....\VFS2D2.TMP resource discarded.

感谢!
我来看看CB 2009-08-15
  • 打赏
  • 举报
回复
学习,妖哥说得很好
geochway 2009-08-15
  • 打赏
  • 举报
回复
老大真是明察秋毫,吓得我以后不敢来了.
明朝2013 2009-08-15
  • 打赏
  • 举报
回复
学习了
ccrun.com 2009-08-15
  • 打赏
  • 举报
回复
本回复已屏蔽。
fairchild811 2009-08-14
  • 打赏
  • 举报
回复
.manifest的可以。

用下面的方法也可以:

在Windows Vista里面,ShellExecuteExW lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteExW 的时候,会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。

效果等同于在目标程序上右键点击,然后选择 run as administrator 菜单内容。
加载更多回复(1)

13,825

社区成员

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

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