想关资料
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

PS.

工程引用了这个Manifest文件,但是人为删除了这个Manifest,  编译会报错。

1>.\Debug\XX.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manifest. {_~0v

所以工程最好是记得,注释下。

============

vs2010之后可以在工程 属性中 添加UAC

[Linker] -> [manifest file] -> [UAC Excution Level]

改成

[requireAdministrator (/level='requireAdministrator')]

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

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

    打开VS2005.VS2008.VS2010工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件:如没有,按如下方式创建:鼠标右击工程在菜单中选择“属性”,点击工 ...

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

    https://msdn.microsoft.com/en-us/library/windows/desktop/hh848036(v=vs.85).aspx https://msdn.microso ...

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

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

  4. Win7 下以管理员身份运行批处理文件,切换JDK版本

    Win7下 切换JDK的批处理命令 1. 批处理文件(必须以管理员身份执行)内容如下 @echo off rem --- Base Config 配置JDK的安装目录 --- :init set JA ...

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

    已转至新的博客 http://www.raysoftware点击打开链接.cn/?p=49 项目中用到一个功能,Win7下超级管理员创建普通权限任务. 试了几种办法,例如获取资源管理器的Token,然 ...

  6. 实现在vista和win7中使用管理员权限接收WM_DROPFILES(OnDropFiles())消息的方法(好像XP不支持这个函数)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #pragma once   #ifndef WM_COPYGLOBALD ...

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

    转自csdn的yangw150,zhao4zhong1 转自http://www.cnblogs.com/del/archive/2008/02/13/1068229.html http://blog ...

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

    设置cmd以管理员权限运行 目的:创建或删除文件等命令时,需要管理员权限运行cmd(linux以root用户登录).   例如,创建日志目录.   方法一: 1.激活administrator用户 2 ...

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

    设置cmd以管理员权限运行 目的:创建或删除文件等命令时,需要管理员权限运行cmd(linux以root用户登录).   例如,创建日志目录.   方法一: 1.激活administrator用户 2 ...

随机推荐

  1. IE hack

    .hack{ color:#fff;background:#; background:#06f\; /* all IE */ background:#\; /* IE8-9 */ background ...

  2. 开源控件ViewPagerIndicator学习

    导航条指示器.ViewPagerIndicator 地址 https://github.com/JakeWharton/ViewPagerIndicator Style是重用控件的一种技术.类似CSS ...

  3. 转:什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?

    什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI可以用 ...

  4. JAVA I/O 字符输出流简要概括

    偷个懒,直接参考上篇字符输入流Reader的形式,其实Reader和Writer本来就大同小异: 字符输出流Writer 本篇将对JAVA I/O流中的字符输出流Writer做个简单的概括: 总得来说 ...

  5. JNI和NDK

    作者:十岁的小男孩 QQ:929994365 心之安处即是吾乡 前言 本文试图通过解答以下三个问题来达到学习JNI和NDK的目的.是什么?有什么用?怎么用?文章内容前三节来自下面第一个链接的博主共享, ...

  6. VR开发 VR development

    VR开发 VR development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com Ho ...

  7. MySQL创建数据库/表等基本命令操作

    前提:安装好MySQL并且配置好服务,能够正常使用 按住键盘上的Windows图标,通过搜索框找到MySQL5.7 Command Line Client,点击启动 输入安装时设置用户的密码 成功连接 ...

  8. vector interators incompatible

    刚刚使用vector时会报错,报错内容为vector interators incompatible,后来自己进行断点发现我在构造函数内使用了memset,重置了vector向量导致报错,这是一个笔记

  9. Java开发环境搭建详解

    一.jdk安装与配置 jdk7于3月份刚刚发布,目前eclipse的最新版本中还没有提供对jdk7的编译支持,所以我们只下载jdk6. 下载地址:http://download.java.net/jd ...

  10. 框架 Hibernate

    Hibernate 在test01右键新建其他找到hibernate文件夹下的Hibernate Configuration File(cfg.xml) <?xml version=" ...