某些Windows服务只有在重新启动电脑后才会启动,而有些软件安装后会立即启动。
例如,sql server(实例名称)将在安装后立即启动。某些其他服务需要重新启动。重新启动该计算机后,它将开始出现在services.msc中。它是通过使用注册表完成的吗?我收到了与registry of services相关的链接。但我无法追踪到哪一个?是注册表还是其他什么? (将服务设置为手动或自动是不同的,我的问题是关于首次安装软件时添加的服务)
答案 0 :(得分:0)
您不应该直接操作注册表来创建服务。您应该使用服务控制管理器API来创建并在需要时启动服务。注册表值已记录,但它们仍然是API的私有值,仅在重新引导时生效。使用API将立即生效,注册表更改由API完成。
如果您使用的是Windows Installer,则可以让安装程序使用Windows Installer的ServiceInstall和ServiceControl表来处理所有这些内容。
某些服务依赖于在重新启动之后才可用的资源。一个示例可能是锁定文件,该文件将在启动期间通过Pending Files Rename Operations模式覆盖。另一个问题是服务是否依赖于系统环境变量。更新注册表以设置环境后,您应该向广播地址发送消息,通知所有进程更改设置。不幸的是,服务控制管理器会忽略这些消息,因此需要重启才能赶上。
其他例子将根据具体情况而定。