Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中服务的自动延迟启动+;_C++_Visual C++_Service_Windows Installer - Fatal编程技术网

C++ C+中服务的自动延迟启动+;

C++ C+中服务的自动延迟启动+;,c++,visual-c++,service,windows-installer,C++,Visual C++,Service,Windows Installer,我正在尝试创建一个运行可执行文件.exe的服务。问题是每次我重新启动时,服务都没有启动.exe。它缺乏一致性。但是当我手动将启动类型设置为自动(延迟启动)时,它工作得非常好。如何将此启动类型通过C++ +?/P>设置为自动(延迟启动)? 这是我用来自动启动的代码: 如何将“服务自动启动”更改为自动(延迟启动) 您应该使用Windows Installer 5.0及更高版本中提供的 这意味着该功能仅在Windows 7/8和Server 2008R2/2012中可用。这符合你的故事吗?如果是,请继

我正在尝试创建一个运行可执行文件
.exe
的服务。问题是每次我重新启动时,服务都没有启动
.exe
。它缺乏一致性。但是当我手动将启动类型设置为自动(延迟启动)时,它工作得非常好。如何将此启动类型通过C++ +?/P>设置为自动(延迟启动)? 这是我用来自动启动的代码:

如何将“服务自动启动”更改为自动(延迟启动)

您应该使用Windows Installer 5.0及更高版本中提供的

这意味着该功能仅在Windows 7/8和Server 2008R2/2012中可用。这符合你的故事吗?如果是,请继续阅读。否则,另一种方法可能是在MSI中编写注册表值(DelayedAutoStart DWORD=1)


你没有提到你使用什么创作工具来制作你的微星。如果该工具未公开此基础功能,则应将工具切换到公开此基础功能的工具。自定义操作不能很好地替代标准操作

ChangeServiceConfig2函数可以做到这一点

BOOL WINAPI ChangeServiceConfig2(
  __in          SC_HANDLE hService,
  __in          DWORD dwInfoLevel,
  __in          LPVOID lpInfo
);
dwInfoLevel
设置为
SERVICE\u CONFIG\u DELAYED\u AUTO\u START\u INFO
,将启动类型修改为DELAYED AUTO START

请注意,Windows Server 2003和Windows XP不支持此值。
此外,这只会使用Visual Studio设置和部署来进行描述,而不会延迟服务启动
BOOL WINAPI ChangeServiceConfig2(
  __in          SC_HANDLE hService,
  __in          DWORD dwInfoLevel,
  __in          LPVOID lpInfo
);