【问题标题】:Install/Uninstall C Windows Service安装/卸载 C Windows 服务
【发布时间】:2011-12-10 01:47:48
【问题描述】:

我用 C 编写了一个 Windows 服务。我想在不使用 .NET 框架 (installutil) 或 Visual Studio 安装程序的情况下安装/卸载它(因为我是用 C 编写的)。

我正在使用 NSIS 安装我的应用程序,其中包含此服务以及许多其他内容。 NSIS 是否可以安装/卸载 Windows 服务,如果不能,我如何以编程方式在 C 中安装/卸载 Windows 服务。我已经看到了 C# 和 VB 的示例,但没有看到 C 的示例。

【问题讨论】:

  • 在 C 中安装到底是什么意思?您想自己编写安装程序代码吗?否则我建议学习有关 wix 的知识。了解 NSIS 是否支持服务安装只需阅读他们的文档即可。

标签: c windows windows-services installation nsis


【解决方案1】:

NSIS 中没有内置方法来安装 Windows 服务,但您可以简单地使用带有“create”参数的 sc.exe 来安装它。

sc.exe 命令的详细信息可以在这里找到:http://support.microsoft.com/kb/251192

您只需从 NSIS 使用类似这样的命令调用它

Exec '"sc.exe" create ServiceName otherparameters'

【讨论】:

  • 我正在使用 sc 进行开发,但我的理解是它需要 windows sdk,这对于安装在其他计算机上是不可行的。您提到的链接提到“资源工具包”,但没有解释它是什么。你知道它是什么吗?
【解决方案2】:

NSIS documentation lists the various possibilities。您只需选择最适合您需求的一种即可。

让 NSIS 执行此操作比通过调用服务控制管理器 API 自己编写脚本要容易得多。

【讨论】:

    【解决方案3】:

    是的,您可以使用 NSIS 创建服务。看看这些examples

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多