我正在尝试编写一个启动/停止我系统的任何Windows服务的c / c ++应用程序。
我的应用程序适用于名称之间没有空格的服务,但对于它们之间有空格的服务名称没有响应。
以下是我用于打开服务的命令:
SC_HANDLE serviceDbHandle = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
SC_HANDLE serviceHandle = OpenService(serviceDbHandle,
"My Service",
SC_MANAGER_ALL_ACCESS);
此处"My Service"
- 第二个参数为LPCSTR
,其空终止正在产生问题。
如何启动/停止名称中包含空格的服务 - 任何线索或建议都会有所帮助。
我在xp机器上使用Visual Studio 2005。
谢谢,
Anil
答案 0 :(得分:1)
您需要使用服务的内部名称(没有空格),而不是显示名称(可能)。
来自MSDN:
要打开的服务的名称。这是创建服务对象时
lpServiceName
函数的CreateService
参数指定的名称,不是用户界面应用程序显示的用于标识服务的服务显示名称