通過程序名獲取程序PID
阿新 • • 發佈:2019-01-27
/*用CreateToolhelp32Snapshot進行對系統所有程序進行快照,然後利用Process32First取得第一個程序控制代碼,然後把得到的PROCESSENTRY32結構體中的szExeFile就是程序名進行比較,利用Process32Next進行迴圈比較,具體用法看msdn,就可以得到程序控制代碼了,,,
附上C/C++程式碼:*/
#include<iostream>
#include<windows.h>
#include<Tlhelp32.h>
using namespace std;
DWORD GetProcessID(char *FileName)
{
HANDLE myhProcess;
PROCESSENTRY32 mype; mype.dwSize = sizeof(PROCESSENTRY32);
BOOL mybRet;
//進行程序快照
myhProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //TH32CS_SNAPPROCESS快照所有程序
//開始程序查詢
mybRet=Process32First(myhProcess,&mype); //迴圈比較,得出ProcessID
while(mybRet)
{
if(strcmp(FileName,mype.szExeFile)==0)
return mype.th32ProcessID;
else
mybRet=Process32Next(myhProcess,&mype);
}
return 0;
}
int main(){
cout<<GetProcessID("QQ.exe"); //通過程序名比較
return 0;
}
附上C/C++程式碼:*/
#include<iostream>
#include<windows.h>
#include<Tlhelp32.h>
using namespace std;
DWORD GetProcessID(char *FileName)
{
HANDLE myhProcess;
PROCESSENTRY32 mype; mype.dwSize = sizeof(PROCESSENTRY32);
BOOL mybRet;
//進行程序快照
myhProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //TH32CS_SNAPPROCESS快照所有程序
//開始程序查詢
mybRet=Process32First(myhProcess,&mype); //迴圈比較,得出ProcessID
while(mybRet)
{
if(strcmp(FileName,mype.szExeFile)==0)
return mype.th32ProcessID;
else
mybRet=Process32Next(myhProcess,&mype);
}
return 0;
}
int main(){
cout<<GetProcessID("QQ.exe"); //通過程序名比較
return 0;
}