最简单的方式
ShellExecute( "net stop servicename ",...);
ShellExecute( "net start servicename ",...);
复杂的就是API函数
SC_HANDLE OpenSCManager(
LPCTSTR lpMachineName, // computer name
LPCTSTR lpDatabaseName, // SCM database name
DWORD dwDesiredAccess // access type
);
SC_HANDLE OpenService(
SC_HANDLE hSCManager, // handle to SCM database
LPCTSTR lpServiceName, // service name
DWORD dwDesiredAccess // access
);
BOOL ControlService(
SC_HANDLE hService, // handle to service
DWORD dwControl, // control code
LPSERVICE_STATUS lpServiceStatus // status information
);
dwControl
[in] Specifies the requested control code. This value can be one of the following control codes. Control code Description
SERVICE_CONTROL_CONTINUE Notifies a paused service that it should resume. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_INTERROGATE Notifies a service that it should report its current status information to the service control manager. The hService handle must have SERVICE_INTERROGATE access.
SERVICE_CONTROL_NETBINDADD Windows 2000/XP: Notifies a network service that there is a new component for binding. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_NETBINDDISABLE Windows 2000/XP: Notifies a network service that one of its bindings has been disabled. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_NETBINDENABLE Windows 2000/XP: Notifies a network service that a disabled binding has been enabled. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_NETBINDREMOVE Windows 2000/XP: Notifies a network service that that a component for binding has been removed. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_PARAMCHANGE Windows 2000/XP: Notifies a service that its startup parameters have changed. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_PAUSE Notifies a service that it should pause. The hService handle must have SERVICE_PAUSE_CONTINUE access.
ShellExecute( "net stop servicename ",...);
ShellExecute( "net start servicename ",...);
复杂的就是API函数
SC_HANDLE OpenSCManager(
LPCTSTR lpMachineName, // computer name
LPCTSTR lpDatabaseName, // SCM database name
DWORD dwDesiredAccess // access type
);
SC_HANDLE OpenService(
SC_HANDLE hSCManager, // handle to SCM database
LPCTSTR lpServiceName, // service name
DWORD dwDesiredAccess // access
);
BOOL ControlService(
SC_HANDLE hService, // handle to service
DWORD dwControl, // control code
LPSERVICE_STATUS lpServiceStatus // status information
);
dwControl
[in] Specifies the requested control code. This value can be one of the following control codes. Control code Description
SERVICE_CONTROL_CONTINUE Notifies a paused service that it should resume. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_INTERROGATE Notifies a service that it should report its current status information to the service control manager. The hService handle must have SERVICE_INTERROGATE access.
SERVICE_CONTROL_NETBINDADD Windows 2000/XP: Notifies a network service that there is a new component for binding. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_NETBINDDISABLE Windows 2000/XP: Notifies a network service that one of its bindings has been disabled. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_NETBINDENABLE Windows 2000/XP: Notifies a network service that a disabled binding has been enabled. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_NETBINDREMOVE Windows 2000/XP: Notifies a network service that that a component for binding has been removed. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_PARAMCHANGE Windows 2000/XP: Notifies a service that its startup parameters have changed. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_PAUSE Notifies a service that it should pause. The hService handle must have SERVICE_PAUSE_CONTINUE access.
SERVICE_CONTROL_STOP Notifies a service that it should stop. The hService handle must have SERVICE_STOP access.
以上来源于csdn社区问答
本文详细介绍了在Windows环境下,通过简单的Shell命令和更复杂的API函数来实现对服务的启动、停止、暂停和继续操作。从基础的ShellExecute函数开始,深入到SCM(Service Control Manager)API,包括如何打开服务管理器、打开服务以及控制服务的状态。通过不同的控制代码,可以灵活地管理Windows系统中的服务进程。
1734

被折叠的 条评论
为什么被折叠?



