电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

windows下进程是否启动检测


发布日期:2021/10/6
 
在最近做的一个项目中需要用到检测进程状态的功能在网上兜了半圈普遍介绍的方法有三种

是利用GetExitCodeProcess(pihProcess&dwExitCode)通过看dwExitCode返回值是不是STILL_ACTIVE依然活动说明存在

waitforsingleobject通过超时来判断具体的实现方法可以去网上查

openprocess通过返回值来判断如果返回值为NULL则表示进程已经打开否则没有打开

上面个方法别人都说行也有人说有局限性就拿openprocess来说吧自己在测试是发现线程关掉了但是返回值还是NULL郁闷啊~~没办法只能用最土的办法来解决这个问题

load系统的进程表看进程id是不是匹配匹配则表示正在运行否则就已经挂了代码如下

#include <Tlhelph>

//如果有运行返回进程的true没运行返回false

bool ProcessExist(DWORD process_id)

{

PROCESSENTRY pe;

DWORD id = ;

HANDLE hSnapshot = CreateToolhelpSnapshot(THCS_SNAPPROCESS

pedwSize = sizeof(PROCESSENTRY

if( !ProcessFirst(hSnapshot&pe) )

{

CloseHandle(hSnapshot)

return false;

}

while(

{

pedwSize = sizeof(PROCESSENTRY

if( ProcessNext(hSnapshot&pe)==FALSE )

{

CloseHandle(hSnapshot)

return false;

}

if(process_id == pethProcessID)

{

CloseHandle(hSnapshot)

return true;

}

}

}

上一篇:巧妙利用Windows搜索功能清除系统垃圾

下一篇:快?不快?XPSP3详尽评测