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.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)