Windows 8,10等服务安装

时间:2016-05-31 07:09:51

标签: windows delphi cmd delphi-10-seattle

我在安装服务时遇到问题。

我根据需要默认快捷方式和后记或/install /uninstall执行此操作。不幸的是,程序生成错误以停止操作。

令人惊讶的是,安装在旧环境中正常工作。

有没有其他方法可以安装该服务?

3 个答案:

答案 0 :(得分:2)

当UAC关闭时,安装在较旧的环境中工作(这是一件坏事),您总是需要使用提升的权限运行安装程序/脚本(自Windows Vista以来就是如此)。 您可以包含清单,以便在使用/ install参数执行时,您的应用程序/服务需要提升。

要包含清单,您需要创建一个名为 manifest.xml 的xml文件,其中包含以下内容:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="YourApplication.exe" type="*" />
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*" />
    </dependentAssembly>
  </dependency>
</assembly>

然后创建一个名为 manifest.rc 的文件,其中包含以下内容:

1 24 "Manifest.xml"

在现代Delphi版本中,您可以通过项目管理器将rc文件包含在项目中,Delphi会自动将其作为资源包含在内。在较旧的Delphi版本中,您需要使用brcc编译器手动编译.rc文件以生成.res文件。

答案 1 :(得分:1)

您是否尝试以管理员身份运行?也许这是一个许可问题。

答案 2 :(得分:0)

在现代Delphi版本中:不需要.rc 转到菜单: 项目&gt;选项&gt;申请&gt;清单文件: - AutoGenerate - RequireAdminstrator

最好的问候。