永发信息网

如何得到其他进程主线程句柄

答案:3  悬赏:10  手机版
解决时间 2021-01-23 14:05
如何得到其他进程主线程句柄,不能用使用CreateProcess函数,
最佳答案
HANDLE GetThreadHandle(HANDLE hProcess)
{
if(!hProcess)
{
return NULL;
}
DWORD dwPid = GetProcessId(hProcess);
HANDLE hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, dwPid);

THREADENTRY32 entry;
memset(&entry, 0, sizeof(THREADENTRY32));
entry.dwSize = sizeof(THREADENTRY32);
DWORD dwThreadID = 0;
if(Thread32First(hThreadSnap, &entry))
{
if(entry.th32OwnerProcessID == dwPid)
{
dwThreadID = entry.th32ThreadID;
}else
{
while(Thread32Next(hThreadSnap, &entry))
{
if(entry.th32OwnerProcessID == dwPid)
{
dwThreadID = entry.th32ThreadID;
break;
}
}
}
}
CloseHandle(hThreadSnap);
return OpenThread(THREAD_ALL_ACCESS, FALSE, dwThreadID);
}

传入你需要查找的进程的handle,这个方法很多,在这里不做累述.
最后得到该进程中运行的线程的handle,你用完记得closehandle.
全部回答
void CloseProcess(CString name) { HANDLE hProcess = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcess == INVALID_HANDLE_VALUE) { return; } PROCESSENTRY32 info = {0}; info.dwSize = sizeof(PROCESSENTRY32); if (!Process32First(hProcess, &info)) { return; } BOOL bFound = FALSE; while (1) { if (!Process32Next(hProcess, &info)) { break; } if (info.szExeFile == name) { bFound = TRUE; HANDLE hClose = ::OpenProcess(PROCESS_TERMINATE, FALSE, info.th32ProcessID); if (hClose == NULL) { return; } if (!::TerminateProcess(hClose, 0)) { return; } else { } } } ::CloseHandle(hProcess); } 这是一个杀进程的函数。 当然,用的时候只需要输入进程名字。 中间也包括了获得进程句柄。参考下吧。 谢谢
#include <tlhelp32.h> int getprocessthreadlist(dword th32processid) //进程的id { handle hthreadsnap; threadentry32 th32; hthreadsnap = createtoolhelp32snapshot(th32cs_snapthread, th32processid); if (hthreadsnap == invalid_handle_value) { return 1; } th32.dwsize = sizeof(threadentry32); if (!thread32first(hthreadsnap, &th32)) { closehandle(hthreadsnap); return 1; } do { if (th32.th32ownerprocessid == th32processid) { printf("threadid: %ld\n", th32.th32threadid); //显示找到的线程的id } }while(thread32next(hthreadsnap, &th32)); closehandle(hthreadsnap); return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国电信(贵南营业厅)地址有知道的么?有点事
修路占用林地未批先建错误认识怎么写
中国联通(贵南营业厅)地址在哪,我要去那里办
<<奋斗>>电视剧 第12集迪厅里放的什么DJ啊拜
中国移动(过马营营业厅)地址在哪,我要去那里
中国移动(贵南县营业厅)地址在什么地方,我要
保定,到市中心血站坐哪路车
中国电信24小时自助服务厅(贵南营业厅)地址在
房顶钢筋混凝土没梁跨度最大是多少
中国联通24小时自助服务厅(贵南营业厅)地址在
鼻炎的人不适合吃什么水果
中国移动自助营业厅地址好找么,我有些事要过
求七龙珠18号温床全套
大将军的女儿叫什么
中国联通业务代办点(203省道)怎么去啊,我要
推荐资讯
连词成句:take,child,right,should,you,the
刀剑英雄不能交易怎么办????
用科学记数法表示-0.0000207=________.
设全集U=Z,A={1,2,3,…,10},B={0,1,2
禹州市公安局梁北派出所地址在哪,我要去那里
华东汽车城地址有知道的么?有点事想过去
如何做好一名保安队长
摩托车轮胎加宽一号能过年检吗?
美菱雅典娜BCD-450ZE9B冰箱变温室的温度范围
天津市大港质量技术监督局怎么去啊,我要去那
过期的奶粉没有喝完,怎么解决?除了倒掉还有
高潮上来时老婆恨不得让我往死里怼
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?