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下载

  • 相关阅读:
    PowerDesigner通过SQL文件,反向生成模型
    跨域请求设置
    SSO单点登录与登出
    jwt使用
    git概念理解
    Slf4j MDC机制
    ASP.NET Core依赖注入最佳实践,提示&技巧
    EFCore数据库迁移命令整理
    RSA加密的使用
    CocoaPods 安装的第三方删除
  • 原文地址:https://www.cnblogs.com/endlock/p/1748883.html
Copyright © 2011-2022 走看看