Delphi应用程序清单WinXP和Win7下的文件问题

ron*_*ana 5 windows delphi privileges code-signing manifest

我的最后一个问题"在Win-7下列出服务和服务状态"使我开始研究一种解决方案,该解决方案基于.manifest文件为我的应用程序提供Windows Vista以后的管理员权限.

我不确定继续上一个问题,因为它们不一样所以这是另一个问题:

我的应用程序现在在Win 7下工作正常,无论我是否因为清单文件而"以管理员身份"运行它.我的清单文件如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.6.0.5" processorArchitecture="X86" name="ServiceMonitorPro" type="win32"/>
  <description publisher="Powershield Ltd" product="Powershield Service Monitor">Powershield Service Monitor</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
   <security>
    <requestedPrivileges>
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
    </requestedPrivileges>
   </security>
  </trustInfo>
 </assembly>
Run Code Online (Sandbox Code Playgroud)

当应用程序在Windows 7或Vista上运行时,UAC会出现如下对话框: alt text http://www.freeimagehosting.net/uploads/39787fd3dd.jpg

如何替换"未知"发布者?

另一个也是最大的问题是,即使你的应用程序在Win7或Vista下运行没有问题,在WinXP下它现在崩溃的消息:"此应用程序无法启动,因为应用程序配置不正确.重新安装应用程序可能会修复此问题问题."

我要添加的另一件事:如果我向XPMan添加引用(使用子句),那么应用程序在WinXP上工作正常,但是我的.manifest文件在Vista或Win7下没有任何区别.

ron*_*ana 12

我要感谢所有人,评论或回答让我继续挖掘...... :)我去搜索文件WindowsXP.res.该文件的内容是:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="DelphiApplication"
    version="1.0.0.0" 
    processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)

解决方案:我已将我的.manifest文件与添加了依赖项部分的WindowsXP.Res xml混合.如果有人知道为什么它现在正在工作,我会很高兴听到 - 但这是解决方案 - 到目前为止测试了几个虚拟机,在我的电脑和其他几个......工作:)


Chr*_*ton 8

您需要使用代码签名证书对代码进行签名.这里应该有很多例子.我用"代码签名"重新标记了您的问题,您还可以查找"证书".
我自己使用Comodo证书,并使用令人敬畏的,精彩的Visual Build Pro v6签名,这是SO的广告客户.