获取进程的句柄
由进程文件名获取:
void fnget_proc_handl(const char *pproc_name)
{
void *hproc = NULL;
void *hsnap = NULL;
PROCESSENTRY32 pe32 = {0};
pe32.dwSize = sizeof(PROCESSENTRY32);
hsnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hsnap == INVALID_HANDLE_VALUE)
return ;
if(!Process32First(hsnap,&pe32))
{
CloseHandle(hsnap);
return ;
}
do
{
if(_stricmp(pe32.szExeFile,pproc_name) != 0)
continue;
hproc = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);
if(hproc != NULL)
{//取到句柄
}
CloseHandle(hproc);
}while(Process32Next(hsnap,&pe32));
CloseHandle(hsnap);
return ;
}
由窗口名获取 :
void fnget_proc_handl(const char *ptitle)
{
unsigned long dwpid = 0;
void *hproc = NULL;
HWND hWnd = FindWindow(NULL, ptitle);
if (hWnd == NULL)
return;
GetWindowThreadProcessId(hWnd, &dwpid);
hproc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwpid);
if(hproc != NULL)
{//取到句柄
}
CloseHandle(hproc);
}