MFC VC++ 根據文件名獲取程序的Pid


環境:PC Win7 VS

VC++ 、MFC

使用,輸入文件名即可獲取程序的pid,進而可以對程序進行操作,比如關閉Porcess等。

頭文件:

#include <TlHelp32.h>

 

DWORD *****::GetProcessIdFromName(LPCTSTR name) 
{ 
    PROCESSENTRY32 pe; 
    DWORD id = 0; 
    //請參考msdn,主要是獲得windows當前的任務的一個snap(快照)。 
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); 
    pe.dwSize = sizeof(PROCESSENTRY32); 
    //檢索上一步獲得的windows的快照的每個進程。First ,next 函數 
    if(!Process32First(hSnapshot,&pe)) 
        return 0; 
    CString name1,name2; 

    do 
    { 
        pe.dwSize = sizeof(PROCESSENTRY32); 
        name1=pe.szExeFile; 
        name2=name; 
        name1.MakeUpper(); 
        name2.MakeUpper(); 
        //其中參數pe里面有進程信息如name,即在任務管理器里面看到的名字,如qq.exe 
        if(strcmp(name1.GetBuffer(0),name2.GetBuffer(0))   ==   0) 
        { 
            //記下這個ID,也及時我們要得到的進程的ID 
            id   =   pe.th32ProcessID; 
            break; 
        } 

        if(Process32Next(hSnapshot,&pe)==FALSE)  
            break; 
    } while(1); 
    CloseHandle(hSnapshot); 
    return id; 
} 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM