zoukankan      html  css  js  c++  java
  • windows 7 下使用 Delphi 2010 开发的UAC问题

      windows从Vista起引入了UAC控制,对应用程序的一些行为做出了限制,例如修改注册表的操作,如果程序没有申请到管理员权限就无法执行该操作。如何让delphi开发的程序可以支持在启动时就申请管理员权限呢,可以参考这篇博文http://tech.ddvip.com/2009-04/1239359402114436.html

       需要特别说明的是如果使用Delphi2010开发,IDE会自动为项目添加一个资源文件,在这个资源文件中就有UAC控制节,资源文件的名称与项目名称相同,文件的内容如下:

    UAC资源文件
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      
    <assemblyIdentity
        
    type="win32"
        name
    ="CodeGear RAD Studio"
        version
    ="14.0.3615.26342" 
        processorArchitecture
    ="*"/>
      
    <dependency>
        
    <dependentAssembly>
          
    <assemblyIdentity
            
    type="win32"
            name
    ="Microsoft.Windows.Common-Controls"
            version
    ="6.0.0.0"
            publicKeyToken
    ="6595b64144ccf1df"
            language
    ="*"
            processorArchitecture
    ="*"/>
        
    </dependentAssembly>
      
    </dependency>
      
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        
    <security>
          
    <requestedPrivileges>
            
    <requestedExecutionLevel
              
    level="asInvoker"
              uiAccess
    ="false"/>
            
    </requestedPrivileges>
        
    </security>
      
    </trustInfo>
    </assembly>

      可以看到默认的权限级别是 level="asInvoker" 因为这个文件的存在,会导致按照上述博文编译好的MANIFEST资源失效,最简单的解决办法,把IED自动生成的与项目同名的资源文件删除即可。

      在这里提供一个已经制作好的包含MANIFEST的资源文件下载。

          Mainfest资源文件uac.res下载

  • 相关阅读:
    hnust Snowman
    hnust 可口可乐大促销
    hnust 聚宝盆
    hnust 搬书
    hnust 神奇的序列
    hnust 懒人多动脑
    hnust CZJ-Superman
    集合Set--BST实现
    快速排序
    位运算符
  • 原文地址:https://www.cnblogs.com/endlock/p/1748883.html
Copyright © 2011-2022 走看看