`
mylove2060
  • 浏览: 331950 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

进程-根据进程名取得进程号

阅读更多
DWORD FindProcessIdByName(const std::string& in_processName)
{

    PROCESSENTRY32 processInfo;
	processInfo.dwSize = sizeof(processInfo);

	HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
	if (processesSnapshot == INVALID_HANDLE_VALUE)
    {
	    return 0;
    }

    //Process First in snapshot and traverse the list.
	Process32First(processesSnapshot, &processInfo);
    if (!in_processName.compare(processInfo.szExeFile))
    {
        //Process exists.
    	CloseHandle(processesSnapshot);
		return processInfo.th32ProcessID;
	}

	while ( Process32Next(processesSnapshot, &processInfo) )
	{
		if ( !in_processName.compare(processInfo.szExeFile) )
		{
			CloseHandle(processesSnapshot);
			return processInfo.th32ProcessID;
		}
	}
	
	CloseHandle(processesSnapshot);
	return 0;
}



应用:

#include "windows.h"
#include <string>
#include "tlhelp32.h"
#include <iostream>
#include <stdio.h>
#include <tchar.h>

using namespace std;

DWORD FindProcessIdByName(const std::string& in_processName)   
{   

	PROCESSENTRY32 processInfo;   
	processInfo.dwSize = sizeof(processInfo);   

	HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);   
	if (processesSnapshot == INVALID_HANDLE_VALUE)   
	{   
		return 0;   
	}   

	//Process First in snapshot and traverse the list.   
	Process32First(processesSnapshot, &processInfo);   
	if (!in_processName.compare(processInfo.szExeFile))   
	{   
		//Process exists.   
		CloseHandle(processesSnapshot);   
		return processInfo.th32ProcessID;   
	}   

	while ( Process32Next(processesSnapshot, &processInfo) )   
	{   
		if ( !in_processName.compare(processInfo.szExeFile) )   
		{   
			CloseHandle(processesSnapshot);   
			return processInfo.th32ProcessID;   
		}   
	}   

	CloseHandle(processesSnapshot);   
	return 0;   
} 


int _tmain(int argc, _TCHAR* argv[]){
	std::cout<<"QQ.exe Process ID:"<<FindProcessIdByName("QQ.exe")<<std::endl;
	std::cout<<"QQMusic.exe Process ID:"<<FindProcessIdByName("QQMusic.exe")<<std::endl;
	return 0;
}



结果:
QQ.exe Process ID:580
QQMusic.exe Process ID:1944
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics