谢谢
能否通过什么方法可以自动检测到该服务是不是正常运行的
当该服务程序不正常运行的时候可以将它重新启动一次
能实现吗?
能否通过什么方法可以自动检测到该服务是不是正常运行的
当该服务程序不正常运行的时候可以将它重新启动一次
能实现吗?
解决方案 »
- 求助:谁知道怎样实现对.rar文件的操作呀
- 单击打开文档工具栏,如何只打开自己定义的类型的文档?
- 在CFormView中 实现在另一个对话框图片控件中 绘图
- 50分求install sheild 安装文件
- listctrl的虚表响应消息LVN_GETDISPINFO问题(分实在太少,还请各位帮帮忙)
- 小弟我初学VC、希望能得到一份完整的关于VC做的简易程序的源代码(如计算器)
- 这样的交换机如何欺骗进行嗅探!·
- 什么时候需要给组件签名?
- CWinapp::CWinApp()函数求助(对不起,原贴我输错了,现在改过来)
- vc6.0 下一个头疼的连接错误
- 我用的是CHTMLView自做的IE,怎么在标题栏上显示网页的标题?
- 数字格式化问题,请进,新手或老鸟
还是老大啊谢谢
我怎么样检测一个service的状态呐,比如说是正在运行还是暂停状态,能在程序中实现吗?
1) 打开服务管理器句柄,
2) 打开指定的服务
3) 读取服务程序的运行状态参考下面这段:// 刷新服务状态
CString str("****");
m_svrstatus = -1;
SC_HANDLE sh = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if(sh != NULL)
{
SC_HANDLE ss = OpenService(sh, "GameNicePhoneSvr", SERVICE_QUERY_STATUS);
if(ss != NULL)
{
SERVICE_STATUS ssStatus;
if( QueryServiceStatus( ss, &ssStatus ) )
{
switch(ssStatus.dwCurrentState)
{
case SERVICE_STOPPED :// The service is not running.
str = "已停止"; break;
case SERVICE_START_PENDING :// The service is starting.
str = "正在启动"; break;
case SERVICE_STOP_PENDING:// The service is stopping.
str = "正在停止"; break;
case SERVICE_RUNNING:// The service is running.
str = "已启动"; break;
case SERVICE_CONTINUE_PENDING:// The service continue is pending.
str = "正在继续"; break;
case SERVICE_PAUSE_PENDING:// The service pause is pending.
str = "正在暂停"; break;
case SERVICE_PAUSED:// The service is paused.
str = "已暂停"; break;
}
m_svrstatus = ssStatus.dwCurrentState;
} CloseServiceHandle(ss);
}
else
{
if(GetLastError()==ERROR_SERVICE_DOES_NOT_EXIST)
str = "未安装";
}
CloseServiceHandle(sh);
}
GetDlgItem(IDC_STATUS)->SetWindowText(str);