VS2005 工程在win7下使用管理员权限运行

想关资料

http://stackoverflow.com/questions/13030492/set-administrator-privilege-for-my-c-application-in-vs2005

http://msdn.microsoft.com/en-us/library/bb756929.aspx

http://msdn.microsoft.com/en-us/library/ms235591.aspx

//=================================================

http://blog.csdn.net/jjchao/article/details/7041335(来源)

方法1

Vista/Win7使用UAC加强了权限管理,一些程序需要用户指明管理员权限才能正常运行。那么如何让一个程序默认就是以管理员方式运行呢?答案是Manifest.


步骤如下:

1. 在工程中新建一个文件,例如mani.xml。
其内容为

< ?xml
version="1.0" encoding="UTF-8" standalone="yes"?>
< assembly
xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

< ms_asmv2:trustInfo
xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">

< ms_asmv2:security>
< ms_asmv3:requestedPrivileges
xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">

<requestedExecutionLevel level="requireAdministrator"
uiAccess="false" />
< /ms_asmv3:requestedPrivileges>

< /ms_asmv2:security>
< /ms_asmv2:trustInfo>

< /assembly>

蓝色的一行是关键的。默认是asInvoker。这里改成requireAdministrator.
2.
右键项目,选择Properties。在Mainfest Tool一节,选择Input and Output,在Additional Manifest
Files中,输入刚才创建的xml文件。
3. Rebuild,这时可能会出现一个警告(81010002),不用理会:(注,为了得到详细的信息,我把项目属性 -
Manifest Tool - General 中的Suppress Startup Banner 设置成No, Verbose Output
设置成Yes)
1>------ Rebuild All started: Project: test, Configuration:
Release Win32 ------
1>Deleting intermediate and output files for project
‘test‘, configuration ‘Release|Win32‘
1>Compiling...

1>stdafx.cpp
1>Compiling...
1>test.cpp
1>Linking...

1>Generating code
1>Finished generating code
1>Embedding
manifest...
1>Microsoft (R) Manifest Tool version 5.2.3790.2075

1>Copyright (c) Microsoft Corporation 2005.
1>All rights reserved.

1>.\mani.xml : manifest authoring warning 81010002: Unrecognized Element
"requestedPrivileges" in namespace
"urn:schemas-microsoft-com:asm.v3".
1>Build log was saved at
"file://f:\myworks\test\test\Release\BuildLog.htm"
1>test - 0 error(s), 1
warning(s)
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped
==========

然后可以看到生成的exe文件的图标变了,上面多了个小盾牌:

双击运行,弹出了UAC的确认框,OK了。

最后关于上面的警告:VC2005带的Manifest工具mt.exe是5.2.3790.2025版本的,更新成Windows
SDK中带的6.1.7716.0,那个警告就消失了。

Kudouman补充:

Visual Studio 2005 中的 MT.EXE 在加载 UAC 的 MANIFEST 有问题, 
会导致了Windows XP
SP2的SXS.DLL崩溃和Windows的蓝屏。
1。 使用 Microsoft Windows Vista SDK 里面的mt.exe替换
Visual Studio 2005 RTM 里面的mt.exe 
2。 使用 Visual Studio 2005 SP1 

不知道哪位安装了 VS 2005 SP1 或者 VISTA SDK 能够分享一下 MT.EXE 么? 谢谢

如果是从Microsoft下载Microsoft Windows Vista SDK,安装以后在C:\Program Files\Microsoft
SDKs\Windows\v6.0\Bin\mt.exe获得文件。 
如果是 VS 2005 SP1 的话 , 在 C:\Program
Files\Microsoft Visual Studio 8\VC\bin\mt.exe

VS2005 工程在win7下使用管理员权限运行,布布扣,bubuko.com

时间: 2024-10-07 18:38:48

VS2005 工程在win7下使用管理员权限运行的相关文章

vs2005 ,2008,2010中引入app.manifest(即c#程序在win7下以管理员权限运行方法)

打开VS2005.VS2008.VS2010工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件:如没有,按如下方式创建:鼠标右击工程在菜单中选择“属性”,点击工程属性的“安全性”标签,在安全性标签页中勾选“启用ClickOnce安全设置”,并选择“这是完全可信的应用程序”,保存工程,此时在Properties下已经自动生成了app.manifest文件. 将默认的app.manifest文件修改为 [html] view plain copy <?xml 

csharp:引入app.manifest,程序在win7下以管理员权限运行配置方法

https://msdn.microsoft.com/en-us/library/windows/desktop/hh848036(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/apps/ff769509(v=vs.105).aspx <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersi

VS2005 VS2008编译的程序在Win7下以管理员身份运行的设置

在VS2005或者VS2008 里面,直接项目右键---属性---连接器---清单文件---uac执行级别   选择requireAdministrator  重新编译 这样你的程序直接运行就拥有管理员权限了

Win7下超级管理员创建普通权限任务

已转至新的博客 http://www.raysoftware点击打开链接.cn/?p=49 项目中用到一个功能,Win7下超级管理员创建普通权限任务. 试了几种办法,例如获取资源管理器的Token,然后以这个Token用CreateProcessWithTokenW创建任务.这样做是可以的. 但是如果当前没有资源管理器或者其他普通权限的任务怎么办?CreateToken自己构造一个Token也可以,但是那些参数看了就头大. 试了一下以超级用户方式启动任务管理器用菜单中的运行,居然是默认创建普通权

win7下的DB2权限问题

在运行DB2命令时,会出现SQLSTATE=42502的错误,说是授权标示不具有执行指定操作的特权,怎么解决呢? 切换到DB2ADIN用户下,选择一个数据库,右击---权限,用户---添加用户,把用户添加进来,全部授权,确定,OK.见图如下 win7下的DB2权限问题

判断当前进程是否以管理员权限运行(AllocateAndInitializeSid后,用CheckTokenMembership与AdministratorsGroup进行比较,和Delphi的那个例子还有点不一样)

在Win7下(Vista以上的...)有时某些操作就是会让人郁闷 开启了UAC的话,得以管理员权限运行才不会出现Access is denied... 但是,程序又不是非得什么时候都用那破管理员权限的 总不能在manifest里加权限,然后用户运行时老弹确认吧? 当然啦,可以将需要管理员权限的部分写到另一个小程序,需要时调用它就行了 不过还是不爽,如果是一个小小的程序还要再加另一个小小小程序的话 那好,干脆判断是不是Win7...开启了UAC没有之类 开启的话再判断下是不是以管理员权限运行,不是

如何在程序里模拟在cmd里用管理员权限运行一条指令

转自csdn的yangw150,zhao4zhong1 转自http://www.cnblogs.com/del/archive/2008/02/13/1068229.html http://blog.csdn.net/go121015603/article/details/41870707 win7下,我想执行net user administrator /active:yes这样一条指令,用system()函数执行时返回错误,返回错误是“发生系统错误 5 拒绝访问”,原来是没有管理员权限,用

如何设置默认以管理员权限运行cmd

设置cmd以管理员权限运行 目的:创建或删除文件等命令时,需要管理员权限运行cmd(linux以root用户登录). 例如,创建日志目录. 方法一: 1.激活administrator用户 2.administrator登录 3.cmd管理员方式运行命令: net user administrator  /active:yes 方法二:修改注册表 1.Win+R – regedit 2.位置HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Curre

RobotFramework环境配置:默认以管理员权限运行cmd

设置cmd以管理员权限运行 目的:创建或删除文件等命令时,需要管理员权限运行cmd(linux以root用户登录). 例如,创建日志目录. 方法一: 1.激活administrator用户 2.administrator登录 3.cmd管理员方式运行命令: net user administrator  /active:yes 方法二:修改注册表 1.Win+R – regedit 2.位置HKEY_CURRENT_USER\Software\Microsoft\Windows NT\Curre