gpt4 book ai didi

c++ - C++服务的自动延迟启动

转载 作者:行者123 更新时间:2023-11-30 02:55:28 24 4
gpt4 key购买 nike

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

这是我用来自动启动的代码:

我应该如何将“Service_auto_start”更改为自动(延迟启动)?

SC_HANDLE schService = CreateService
(
schSCManager, /* SCManager database */
pName, /* Name of service */
pName, /* Service name to display */
SERVICE_ALL_ACCESS, /* Desired access */
SERVICE_WIN32_OWN_PROCESS|
SERVICE_INTERACTIVE_PROCESS , /* Service type */
SERVICE_AUTO_START, /* Start type */
SERVICE_ERROR_NORMAL, /* Error control type */
pPath, /* Service's binary */
NULL, /* No load ordering group */
NULL, /* No tag identifier */
NULL, /* No dependencies */
NULL, /* LocalSystem account */
NULL
);

最佳答案

ChangeServiceConfig2 函数可以做到这一点。

BOOL WINAPI ChangeServiceConfig2(
__in SC_HANDLE hService,
__in DWORD dwInfoLevel,
__in LPVOID lpInfo
);

dwInfoLevel 设置为 SERVICE_CONFIG_DELAYED_AUTO_START_INFO 以将启动类型修改为延迟自动启动。

请注意,Windows Server 2003 和 Windows XP 不支持此值。此外,这只是潜水描述而不是延迟服务启动

关于c++ - C++服务的自动延迟启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com