想关资料
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. LeetCode FindMinimuminRotatedSorteArray &&FindMinimuminRotatedSorteArray2

    LeetCode上这两道题主要是使用二分搜索解决,是二分搜索算法的一个应用,根据条件每次舍弃一半,保留一半. 首先第一题: FindMinimuminRotatedSorteArray(时间复杂度为二 ...

  2. CI获取ip的API

    header("Content-type:text/html;charset=utf-8"); // p($this->input->ip_address()); // ...

  3. Google设计理念

    Google的十大信条 我们首次拟就这“十大信条”还是在Google刚刚成立没几年的时候.此后,我们时常重新审视这份清单,看看它是否依然适用.我们希望这些信条永不过时,而您也可以监督我们是否遵守了这些 ...

  4. Jqery之select操作

    jquery获取select选择的文本与值 获取select : 获取select 选中的 text :     $("#ddlregtype").find("optio ...

  5. cgi创建web应用(一)之传递表单数据与返回html

    主旨: 0.环境说明 1.创建一个cgi本地服务 2.创建一个html表单页 3.创建一个对应的cgi 脚本文件 4.运行调试 0.环境说明: 系统:win7 32位家庭版 python:2.7 代码 ...

  6. Andorid游戏2048开发(一)

    最近有一款Android平台下的游戏很是火爆----2048.下面记录一下开发过程.由于笔者是Android开发的初学者,所以希望借以此文熟悉整个Android开发的流程. 首先创建Game2048的 ...

  7. ECshop网店系统百万级商品量性能优化-简单的一些Cache内存配置

    ECshop网店系统对于产品的数据.模板.Query都可以缓存,也就是把一些商品详情页.分类页.Search页的数据经过一次访问后,用文件的形式保存下来,下次有人访问相同的页面时,不用再查数据库,直接 ...

  8. JDBC链接

    //1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar  Connection con = null;  Class.forName( " ...

  9. linux磁盘设备知识

    linux分区数字编号: 1.分区数字编号1至4留给主分区或扩展分区使用,逻辑分区编号从5开始. 2.IDE硬盘设备名均以/dev/hd开头,不同硬盘编号依次是/dev/hda/./dev/hdb./ ...

  10. MJRefreshFooterView

    实例化header和footer _header = [MJRefreshHeaderView header]; _header.scrollView = _tableView; 设置header和f ...