我在理解服务和注册表之间的关系时遇到了问题。
我的任务是将我的 Windows C++ 程序从简单的应用程序转换为服务。 我读到我需要产生更多的功能,如:开始停止恢复安装。 问题是:
为什么我需要注册表?
如何进入新程序?
除了这些方法,我还需要对注册表做什么?我怎么进入里面?
进入服务需要写脚本吗?
我读过但我只是不明白,任何回答和/或一些很好的解释链接都将不胜感激。
谢谢,
最佳答案
我不知道服务和注册表之间有任何记录在案的关系。服务可以使用注册表来存储它们的设置,就像任何其他应用程序一样,但它们不是必需的。
正式来说,您不需要注册表。您只需使用相关的 API 函数安装服务即可。作为其实现的一部分,API 函数会创建注册表项,操作系统稍后会使用这些注册表项来了解何时以及如何启动您的服务,但我认为这些键的记录并没有期望开发人员会手动修改它们,所以不要不用担心他们。
但是,如果您的程序使用注册表来存储设置,您将需要了解您的服务运行的帐户,因为这会影响您的程序可以访问注册表的哪些区域。
调用
CreateService
安装您的服务.在程序的安装程序中执行此操作。您还可以让您的服务在检测到自己正在使用某个命令行开关(例如-i
)运行时自行安装。要卸载您的服务,请调用OpenService
然后DeleteService
.无论哪种情况,您都需要调用OpenSCManager
第一的。有关如何调用这些函数的更多信息,请参阅 MSDN。或者,您可以 use the
sc
command to create and delete your service .正如我上面提到的,您不需要对注册表执行任何操作。只需使用 API 安装和卸载您的服务,剩下的交给操作系统。
您不需要编写任何脚本来启动您的服务。操作系统已经知道如何启动它(因为它已安装)。如果您的服务是用户想要频繁启动和停止的,那么他们可以使用
net
而不是使用服务控制面板。或sc
命令。
关于c++ - 服务和注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1465494/