在VISTA 系统下,如何把程序以管理员身份运行

华亭真人 2009-05-05 05:52:08
在VISTA 系统下,如何把程序以管理员身份运行
当然,是以代码实现的。。。
请高手指教,不胜感激!
...全文
321 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wutaihua 2009-05-05
  • 打赏
  • 举报
回复

VC编译出来的应用程序在vista下运行,有可能因为权限问题,不能成功运行。

用以下办法,给应用程序添加一个manifest文件,程序运行时系统就会跳出UAC对话框,获得管理权限。

1.打开应用程序的源代码工程

2.添加一个“custom”资源,"resource type"填24,把资源ID改为1,然后把以下内容复制到资源内容中保存

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="mulitray.exe.manifest"
type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

3.重新编译应用程序,此时会发现,广用程序的图标在vista下会多出一个小盾标志。





不使用manifest的话也可以用这个方法

在Windows Vista里面,ShellExecuteExW lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteExW 的时候

会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。

效果等同于在目标程序上右键点击,然后选择 run as administrator 菜单内容。
修复 XP+Win7 双系统 启动引导 程序适用范围: 1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows Recovery Environment)菜单丢失 b.BCD引起的win7/2008r2的3D启动画面丢失(变成VISTA滚动条启动画面) c.BCD引起的启动菜单选择界面乱码现象 d.为VISTA/2008添加修复计算机(Windows Recovery Environment)菜单,使用方法:在系统盘符中新建recovery文件夹,再把光盘或安装程序中的sources\boot.wim(这个文件是否改名为winre.wim随意)和boot\boot.sdi两个文件复制至recovery文件夹,再运行程序,即可自动添加。 使用方法: 非安装软件,直接运行,如果在vista或win7中运行需要关闭UAC或右击本程序后以管理员身份运行,可运行于32位和64位系统或光盘WINPE系统程序以盘符形式搜索系统,因此得确保你要添加的系统分区别被隐含盘符。 可以添加修复Vista/2008/Win7启动菜单,在满足条件的情况下也可以添加修复2000/xp/2003启动菜单。例如可以在xp中运行添加其它分区的vista启动菜单,自动生成xp+vista系统启动菜单,反过来在vista运行添加xp的启动菜单就需要满足xp的三个必要引导文件(ntldr/ntdetect.com/boot.ini)已存在活动分区且活动分区不被隐藏盘符的情况才会添加(当xp菜单不符合条件而无法添加时,如xp菜单已在原多系统菜单中存在,不会影响已存在的xp启动菜单项)。 程序正确运行后,如果有原始BCD启动配置,将备份在c:\autofix下,以bcdbackup1命名方式,多次运行则数字累加.c:\autofix下的autofix.log是程序运行纪录文件.纪录文件内容仅供参考。 没有启动菜单故障的朋友就不要运行程序

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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