检查应用程序是否正在运行(Check If Application Is Running)
IT问题网 2021-02-20 00:00:00
问 题
有没有办法运行一个循环来检查应用程序是否正在运行?到目前为止我有这个。它在windows控制台程序中。我正在使用visual studio 2010.它的定义是_afxdll。
#include " stdafx.h"
#include lt; afx.h gt;
int main()
{
handle hd;
lpcwstr mu =(lpcwstr)" 记事本";
hd = createmutex(null,false,mu);
if (getlasterror()== error_already_exists)
{
// messagebox :: show("程序已在运行。");
return 1 ;
}
closehandle(hd);
解决方案
使用此:
am只是硬编码并比较是否正在运行internet.exe!
这样你就可以动态地确定任何正在运行的服务。你也可以从命令行传递参数。
#include"afxwin.h"
#includelt; wtsapi32.hgt;
#includelt; iostreamgt;
#pragma comment(lib,"wtsapi32.lib")
using namespace std;
dword pcount = 0;
pwts_process_info ppprocessinfo,pprocess;
wtsenumerateprocesses(wts_current_server_handle,0,1,amp; ppprocessinfo,amp; pcount);
pprocess = ppprocessinfo;
cstring internet ="iexplore.exe";
for(int i = 0; ilt; pcount; i ++)
{
pprocess-gt; pprocessname;
if(internet.comparenocase(pprocess-gt; pprocessname)== 0)
{
coutlt;lt; "iexplore运行";
}
pprocess ++;
}lt; / iostreamgt;lt; /wtsapi32.hgt;
您可以使用wmi监视任何进程并获取有关系统事件的通知到创建和终止等过程。请参阅此codeproject文章:使用wmi处理信息和通知 [ ^ ]。
-sa
分享: