zoukankan      html  css  js  c++  java
  • 在Windows 7 下使用Visual Studio 2010 编写自动申请管理员权限运行的程序

    自从Vista推出UAC之后,遇到程序需要执行一些高安全级别的操作的时候就需要系统管理员权限,如何让自己写的程序能够自动向系统申请管理员执行权限,也就是在程序的图标上出现一个小盾牌的图标呢,使用Visual Studio 2010可以很方便的做到这一点。具体步骤如下:

    1、在项目中增加一个Application Manifest File

    2、打开新增加的app.manifest文件,文件的内容如下:


    app.mainfest
    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
      
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        
    <security>
          
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            
    <!-- UAC Manifest Options
                If you want to change the Windows User Account Control level replace the 
                requestedExecutionLevel node with one of the following.

            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

                Specifying requestedExecutionLevel node will disable file and registry virtualization.
                If you want to utilize File and Registry Virtualization for backward 
                compatibility then delete the requestedExecutionLevel node.
            
    -->
            
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          
    </requestedPrivileges>
        
    </security>
      
    </trustInfo>
      
      
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        
    <application>
          
    <!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->

          
    <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
          
    <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
          
        
    </application>
      
    </compatibility>
      
      
    <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
      
    <!-- <dependency>
        <dependentAssembly>
          <assemblyIdentity
              type="win32"
              name="Microsoft.Windows.Common-Controls"
              version="6.0.0.0"
              processorArchitecture="*"
              publicKeyToken="6595b64144ccf1df"
              language="*"
            />
        </dependentAssembly>
      </dependency>
    -->

    </asmv1:assembly>


    3、把<requestedPrivileges〉节中的配置项<requestedExecutionLevel level=" asInvoker" uiAccess="false" />改为<requestedExecutionLevel level=" requireAdministrator " uiAccess="false" />

    4、重新编译程序,编译好后的程序图标上就会出现一个小盾牌,就可以以管理员身份启动了。

  • 相关阅读:
    程序员的自我修养
    c++中的const 限定修饰符
    基于.net开发平台项目案例集锦
    中国期货公司排行及相关上市公司
    备份一些好的书籍名字
    商业银行房贷业务节后骤然下降
    散户炒股七大绝招 巨额获利风险小 (网摘)
    上海2月住宅供应剧减七成 房企捂盘保价
    2009年中国各省人均GDP排名(鄂尔多斯人均GDP将很有可能超过两万美元,全国第一)
    (载自MSN )个人炒汇多年来的一些心得
  • 原文地址:https://www.cnblogs.com/endlock/p/1743756.html
Copyright © 2011-2022 走看看