在VC程序中如何启动停止NT服务?
我用VC写了一个服务,但只能用控制面板的服务管理器来控制,
请问如何在程序中控制该服务的启动和停止?
或者哪里有这方面的代码可供参考?谢谢!
问题点数:50、回复次数:4Top
1 楼tianshu()回复于 2000-03-27 19:02:00 得分 10
1,OpenSCManager
2,OpenService
3,StartServiceTop
2 楼Daio(一天到晚游泳的鱼)回复于 2000-03-27 19:12:00 得分 30
//Try the following codes to stop/start a service
SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
SC_HANDLE hService = ::OpenService(hSCM, "ServiceName", SERVICE_STOP );
SERVICE_STATUS status;
::ControlService(hService, SERVICE_CONTROL_STOP, &status);
::CloseServiceHandle(hService);
::CloseServiceHandle(hSCM);
//Replace the ControlService line with the following to start the service
StartService( hService,0, NULL);
//Wish it works !
//Good Lucks!Top
3 楼Mimi_bear()回复于 2000-03-28 10:48:00 得分 0
步骤:
1.OpenSCManager
2.OpenService
3.用ContrlService函数向指定服务发控制代码(如启动、暂停、继续、停止等)
也可以发送用户定义控制码以完成用户特定功能。上述控制代码由服务端的控制请求处理函数负责响应处理。参见Win32API : RegisterServiceCtrlHandlerTop
4 楼jude()回复于 2000-03-30 18:24:00 得分 0
那是不是说要写一个服务,
还要另外写这个服务的控制程序。
可不可以把这两个合并做为一个程序?Top




