WIN32服务问题

Flaght 2009-07-30 04:13:46
我自己写了一个WIN32服务的程序
schService = CreateService(schSCManager, // SCManager database
"TEXT1", // name of service
"TEXT1", // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS, // service type
dwStartType, // start type
SERVICE_ERROR_NORMAL, // error control type
szServicePath, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
SZDEPENDENCIES, // dependencies
NULL, // LocalSystem account
NULL); // no password
则在CMD 下出现:
E:\Diservice\Debug>Diservice --install
TEXT1 installed.
E:\Diservice\Debug>net start TEXT1
TEXT1 服务已经启动成功。


但我想通过命令行参数来实现
于是我就
if (agrc > 2)
{
//strcpy(szServiceName,agrv[2]);
sprintf(szName, _T("%s"), agrv[2]);

}
else
{
_tprintf(_T("please input Service Name"));
return (0);
}

schService = CreateService(schSCManager, // SCManager database
szName, // name of service
szName, // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS, // service type
dwStartType, // start type
SERVICE_ERROR_NORMAL, // error control type
szServicePath, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
SZDEPENDENCIES, // dependencies
NULL, // LocalSystem account
NULL); // no password

然后再在CMD下 :
E:\Diservice\Debug>Diservice --install TEXT3
TEXT3 installed.

但是我进行下面操作时
E:\Diservice\Debug>net start TEXT3
服务没有响应控制功能。


就会出现这样

请问这是为什么?应该如何解决啊?
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rendao0563 2009-08-04
  • 打赏
  • 举报
回复
你不是只需要一个参数名吗? 为什么agrc > 2
agrc > 2 相当于 agrc >= 3
agrc至少等于3.那么说明你至少要输入2个参数。agrv[2] 指的是第二个参数。
Flaght 2009-07-31
  • 打赏
  • 举报
回复
我加了一个
WCHAR* ToWchar(char *str)
{
static WCHAR buffer[1024];
wcsset(buffer,0);
MultiByteToWideChar(CP_ACP,0,str,strlen(str),buffer,1024);
return buffer;
}
转化为宽字符 但是 还是不行,依然是刚才的错
rendao0563 2009-07-31
  • 打赏
  • 举报
回复
你自己写的有问题。检测是否宽字符问题。
Flaght 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 socoola 的回复:]
引用 2 楼 flaght 的回复:
你什么意思? 没有明白啊?

应该是你要你在命令net start TEXT3后面附带服务的参数
[/Quote]
请问是什么参数啊?
qq845284425 2009-07-30
  • 打赏
  • 举报
回复

mark
socoola 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 flaght 的回复:]
你什么意思? 没有明白啊?
[/Quote]
应该是你要你在命令net start TEXT3后面附带服务的参数
Flaght 2009-07-30
  • 打赏
  • 举报
回复
你什么意思? 没有明白啊?
贪玩的老鼠 2009-07-30
  • 打赏
  • 举报
回复
因为你没传参数,agrc <2直接退出了啊.

//
if (agrc > 2)
{
//strcpy(szServiceName,agrv[2]);
sprintf(szName, _T("%s"), agrv[2]);

}
else
{
_tprintf(_T("please input Service Name"));
return (0);
}

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧