VC启动和停止windows系统服务
来源:互联网 发布:如何在淘宝买东西便宜 编辑:程序博客网 时间:2024/05/02 02:10
开始之前需要链接库文件Advapi32.lib和包含头文件Winsvc.h
本文参考了网上其他网友的文章整理了如下代码
SC_HANDLE msh = OpenSCManager( //打开服务管理对象 NULL, // computer name NULL, // SCM database name GENERIC_EXECUTE // access type ); if(NULL==msh) {AfxMessageBox("打开服务器管理对象失败");return; } SC_HANDLE sh= OpenService( //打开指定的服务 msh, // handle to SCM database "MySQL5_pn", // service name SERVICE_START|SERVICE_STOP|SERVICE_QUERY_STATUS // access ); if(NULL==sh) {AfxMessageBox("打开相应服务失败");CloseServiceHandle(msh);//关闭服务管理器句柄return; } SERVICE_STATUS status; BOOL tag = QueryServiceStatus( //获取服务状态 sh, // handle to service &status // service status ); if(!tag) {AfxMessageBox("获取相应服务状态失败");CloseServiceHandle(sh);//关闭服务管理器句柄CloseServiceHandle(msh);//关闭服务管理器句柄return; } //如果处于停止状态则启动服务,否则停止服务。 if( status.dwCurrentState == SERVICE_RUNNING) { // 停止服务 if( ::ControlService( sh, SERVICE_CONTROL_STOP, &status) == FALSE) { AfxMessageBox("停止服务失败"); ::CloseServiceHandle( sh); ::CloseServiceHandle( msh); return; } // 等待服务停止 while( ::QueryServiceStatus( sh, &status) == TRUE) { // ::Sleep( status.dwWaitHint); //此处等待可能会等待很长时间,注销掉 if( status.dwCurrentState == SERVICE_STOPPED) { AfxMessageBox("成功停止服务"); ::CloseServiceHandle( sh); ::CloseServiceHandle( msh); return; } } } else if( status.dwCurrentState == SERVICE_STOPPED) { // 启动服务 if( ::StartService( sh, NULL, NULL) == FALSE) { AfxMessageBox("停止服务失败"); ::CloseServiceHandle( sh); ::CloseServiceHandle( msh); return; } // 等待服务启动 while( ::QueryServiceStatus( sh, &status) == TRUE) { // ::Sleep( status.dwWaitHint); //此处等待可能会等待很长时间,注销掉 if( status.dwCurrentState == SERVICE_RUNNING) { AfxMessageBox("成功开启服务"); ::CloseServiceHandle( sh); ::CloseServiceHandle( msh); return; } } } AfxMessageBox("系统错误"); ::CloseServiceHandle( sh); ::CloseServiceHandle( msh);
- VC启动和停止windows系统服务
- vc++启动和停止服务
- vc++启动和停止服务
- vc++启动和停止服务
- vc++启动和停止服务
- vc++启动和停止服务
- vc 启动和停止服务
- 命令行方式 启动和停止 windows服务
- .net 启动和停止Windows服务
- windows下快速启动和停止服务
- 用代码启动和停止Windows服务
- windows启动停止服务
- VC++启动或停止指定的系统后台服务
- 系统服务的启动和停止,禁用 和自动启动
- c# windows服务状态、启动和停止服务
- 启动和停止服务
- linux系统查看服务状态和启动停止服务
- MFC/VC下控制windows服务——停止服务,启动服务
- 使用 LINQ 過濾 Select Files (C#)
- 黑马程序员_张孝祥7K面试题-交通灯管理系统
- icu 字符编码探测及字符编码转换实例
- Vim 配置详解
- ASP.NET在updatepanel中使用脚本块
- VC启动和停止windows系统服务
- java、php、python的开发效率对比
- Linux内核里的debugfs
- 优酷网架构
- 使用inotify实现实时文件同步shell脚本
- STL之迭代器及traits编程
- error C2440: 'static_cast' : cannot convert from 'void (__thiscall CMainFrame::* )(void)' to 'LRESUL
- .Net启动外部程序 .
- ioctl与unlocked_ioctl区别