gpt4 book ai didi

c - 带参数启动服务

转载 作者:行者123 更新时间:2023-11-30 14:24:54 25 4
gpt4 key购买 nike

我正在尝试将 win32 应用程序转换为服务。我使用 CreateService() 将其应用程序创建为服务(使用下面的代码)。

    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
); /* no password */

如果实际应用程序中没有参数,我就可以启动该服务。如果我尝试用参数启动服务,那么它就会产生问题。

LPCTSTR apszSvcArgv[32] = {"start","passwd"};
int nSvcArgc = 2;
if(StartService(schService, nSvcArgc,apszSvcArgv))
{
return TRUE;
}

我尝试转储主程序中的传入参数,但它始终将参数号显示为 1。

我做错了什么吗?是否可以将这样的参数传递给 win32 控制台应用程序。

如果我错了,请纠正我。提前致谢

最佳答案

您需要将 args vector 定义为 const char(或 wchar),然后将该 vector 传递给 StartService。

这里是VS中unicode程序的示例

const wchar_t *args[] = { L"arg1", L"arg2", L"arg3", L"arg4" };
StartService(schService, 4, args);

关于c - 带参数启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10986831/

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