导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

无窗口程序的Windows 7管理员权限问题

老马何以识途 2010-07-26 10:11:39
在大家的帮助下,终于成功实现运行程序时自动弹出UAC界面,但我现在遇到了新问题:

我的程序执行时,首先执行的是a.exe,这是一个无窗口程序,它做了一些准备工作后,执行(CreateProcess)b.exe,b.exe才是有窗口的主程序。b.exe直接执行时可以实现自动弹出UAC界面,但是由a.exe调用时却不行,而且用同样的方法(manifest文件)编译a.exe,图标中也不出现盾牌。

我该怎么办?麻烦各位费心解答!
...全文
186 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
没人能帮我,结贴,发红包。
回复
顶起,期待牛人出现。
回复
ls2141 2010-07-28
有点难度 没接触过~~~
回复
没人能帮我了?
回复
VS2008还不会用……下一个版本可以考虑升级一下,VC 6确实老啦
回复
oyljerry 2010-07-26
[Quote=引用 2 楼 hzy_76 的回复:]

谢谢楼上。我用的是VC6,没有这个选项。也已经嵌入manifest文件了,但在b.exe可行,a.exe却不行。
[/Quote]
那就再做一个c.exe,然后这个c.exe 不显示任何界面,直接ShellExecute() 选择run as 的verb启动a.exe,这样a.exe启动会弹出UAC
回复
谢谢楼上。我用的是VC6,没有这个选项。也已经嵌入manifest文件了,但在b.exe可行,a.exe却不行。
回复
hurryboylqs 2010-07-26
你让主进程用管理员权限启动 后面就没那么多问题了
所有的都编译成具有管理员权限
建议用VS2008来编译设置
回复
windywater 2010-07-26
项目属性 — Linker — manifest File — UAC Execution Level设为requiredAdministrator
试试
回复
manifest文件其实很简单:

<?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"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


资源文件最后加了这么一行:

IDR_MANIFEST RT_MANIFEST "res\\1xUpgradeBoot.manifest"


就是改了这么多东西,b.exe工程中也是这样的做法,但是就有盾牌出现。
回复
xt_jat 2010-07-26
图标中也不出现盾牌》》 说明你的manifest文件有问题。仔细找找问题
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……