ส่วนใหญ่เวลารันโปรแกรมเราจะไม่รู้ process id ล่วงหน้า แต่สิ่งที่รู้คือ process name
แต่การเขียนโปรแกรม c++ ส่วนใหญ่จะอ้างอิงโดยการใช้ process id เพื่อหา process handle มาใช้งาน

ผมจึงนำ code สำหรับหา process id เมื่อรู้ process name มาแชร์กัน
คิดว่าน่าจะเป็นประโยชน์กับหลายๆ ท่าน

[hide=5]
อันที่จริงมีอีกวิธีคือหาจาก process snapshot แต่เห็นว่าวิธีนี้ใหม่กว่าเลยเอาวิธีนี้มาให้ดูกัน

original post: http://www.frostcode.info/common_articles/..._name/index.php

ขอ copy มาเฉพาะส่วน source code ละกันนะครับ ส่วนอื่นๆ อ่านจาก original post เลยครับ

[code]
typedef BOOL (WINAPI *ENUMPROCESSES)(DWORD* pProcessIds, DWORD cb, DWORD* pBytesReturned);

typedef DWORD (WINAPI *GETMODULEFILENAMEEX)(HANDLE hProcess, HMODULE hModule, LPTSTR lpBaseName, DWORD nSize);

typedef BOOL (WINAPI *ENUMPROCESSMODULES)(HANDLE hProcess, HMODULE* lphModule, DWORD cb, LPDWORD lpcbNeeded);

GETMODULEFILENAMEEX GetModuleFileNameEx;
ENUMPROCESSES EnumProcesses;
ENUMPROCESSMODULES EnumProcessModules;


int GetProcId(CString procname)
{