c++ 查看系统服务,若服务未启动则启动系统服务

本文实现目标:c++ 启动系统服务

思路:先打开系统服务,检查系统服务状态,如果服务处于停止状态,则将其状态设置为启动。

// Temp.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>
#include <atlstr.h >
#include <shellapi.h>

int _tmain(int argc, _TCHAR* argv[])
{
	SERVICE_STATUS status;
	SC_HANDLE schSCManager;
	SC_HANDLE schService;

	// 打开服务控制管理数据库,并返回服务控制管理数据库的句柄
	schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);  
	if (schSCManager == NULL)
	{
		MessageBox(NULL, _T("打开系统服务控制器失败!"), _T("错误"), NULL);
		return FALSE;
	}

	// 获得服务句柄
	schService = OpenService(schSCManager, _T("GameManagerServer"), SERVICE_ALL_ACCESS | DELETE);    
	if (schService == NULL)
	{
		return FALSE;
	}

	// 获得服务的当前状态
	QueryServiceStatus(schService, &status);  

	// 如果服务处于停止状态,则将其状态设置为启动
	if (status.dwCurrentState = SERVICE_STOPPED)   
		//启动服务
		StartService(schService, 0, NULL);   

	// 关闭服务句柄
	CloseServiceHandle(schSCManager);   
	CloseServiceHandle(schService);
	return 0;
}

c++ 对系统服务的操作扩展:

   创建服务:可手动通过批处理命令,然后进注册表修改一下(后面会介绍),可以自己写进c++小软件

  卸载服务:可用批处理命令 instsrv ServiceName remove ,也可以借用SRVINSTW.EXE(网上可下)

  启动服务:如上方法,也可以用批处理 sc start XXX

  查看某项服务:

  枚举服务:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值