C 如何开启系统服务

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:37:07
用C语言实现开启一个系统服务,比如server服务程序,希望能给出程序片段

C语言来编写让系统中某个服务停止或开启

在Windows下,可以使用一系列API来完成该功能。

首先,调用OpenSCManager来获得服务管理器句柄。

然后,通过服务器管理器句柄,调用OpenService来打开指定服务名称的服务句柄。

通过服务句柄,调用ControlService来进行你想要的控制,比如暂停,停止,重启等操作。

最后,记得调用CloseServiceHandle来关闭上述句柄,以释放内核资源。

如下是我从以前的的一段代码中COPY过来的一点示例,该函数是准备删除一个服务,在删除服务之前,停止该服务。

BOOL Uninstall()
{
if ( !IsInstalled() )
return TRUE;

SC_HANDLE hSCM = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );

if ( hSCM == NULL )
{
//MessageBox( NULL, _T( "打开服务管理器失败!" ), szServiceName, MB_OK );
return FALSE;
}

SC_HANDLE hService = OpenService( hSCM, szServiceName, SERVICE_STOP | DELETE );

if ( hService == NULL )
{
CloseServiceHandle( hSCM );
MessageBox( NULL, _T( "服务不存在!" ), szServiceName, MB_OK );
return FALSE;
}

SERVICE_STATUS status;
ControlService( hService, SERVICE_CO