服务安装在 Windows 8,10 等

Service install on Windows 8,10 etc

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

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

惊人的安装在较旧的环境中正常工作。

还有其他安装服务的方法吗?

您尝试过 运行 作为管理员吗?可能是权限问题。

当 UAC 关闭时,安装在较旧的环境中工作(这是一件坏事),您总是需要 运行 您的安装 program/script 提升权限(就像这是自 Windows Vista 以来)。 您可以包含一个清单,以便您的 application/service 在使用 /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 文件。

在现代 Delphi 版本中:不需要 .rc 转到菜单: 项目 > 选项 > 应用程序 > 清单文件: - 自动生成 - 要求管理员

此致。