如何通过进程PID获得进程HANDLE

如何通过进程PID获得进程HANDLE,第1张

HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0 );

PROCESSENTRY32 procentry=sizeof(PROCESSENTRY32);

BOOL bFlag=Process32First( hSnapShot, &procentry ) ;

while( bFlag )

{

if(stricmp(procentryszExeFile, "你的程序名 ")==0)

processid=procentryth32ProcessID; //找到

bFlag=Process32Next(hSnapShot,&procentry);

}

注意一个程序可能有几个实例同时运行,所以可能同时找到几个ID。

在一个线程中每隔一秒钟(用事件等待),计算一下当前进程cpu占用率:

下面以间隔一次进行计算:

pt1 = GetProcessTimes();//(第一次)

pt2 = GetProcessTimes();//(第二次)

st1 = GetSystemTime();//(第一次)

st2 = GetSystemTime();//(第二次)

cpu_usage = (pt2-pt1)/(st2-st1)

通常如果是多个cpu

cpu_usage /= cpu_count;

VB里API好像没有直接 *** 作这个的

不过我有个可行的思路

VB调用CMD下面的WMIC

WMIC下面输入PROCESS

得到的列里查询 Sessionid Status

这一列应该就是你需要的会话ID

以上就是关于如何通过进程PID获得进程HANDLE全部的内容,包括:如何通过进程PID获得进程HANDLE、怎么获取指定PID之进程的CPU占有率、VB 请问如何获取进程的会话ID.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9745704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存