首页
社区
课程
招聘
如何得到一个指定进程的主线程id或者句柄,请进
发表于: 2009-1-19 18:17 8955

如何得到一个指定进程的主线程id或者句柄,请进

2009-1-19 18:17
8955

想要得到指定进程的主线程id,这个进程是有窗口的,可以通过窗口标题取得进程的processid和句柄。

现在知道的是一种方法通过CreateToolhelp32Snapshot枚举系统中所有线程,然后用Thread32First和Thread32Next来通过THREADENTRY32结构中的一个成员来判断是不是要查询的好个进程的线程。现在问题来了,从这个结构中怎么来判断哪个是主线程了?

另外我也想问下,还有没有其它办法,更简单的得到进程的主线程id或者句柄。

过年了,在这里祝大家在新的一年里身体健康,万事如意。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
GetWindowThreadProcessId这个函数你就可以取得有窗口的ProcessID和ThreadID
2009-1-19 19:22
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
关注…………
2009-1-19 22:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
比较笨的方法。
查看线程的返回堆栈,
主进程的和主线程的是不一样的。

主线程好象是BaseProcess.....,
其他线程好象是 BaseThread....
2009-1-20 11:20
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
5
楼上的方法好
2009-1-20 11:42
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
6
找 Start Time 最早的那个吧
2009-1-20 12:22
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
7
楼上的方法好
2009-1-20 12:24
0
雪    币: 8209
活跃值: (4513)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
8
楼下的方法更好
2009-1-20 12:33
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
9
用createthreadnotifyroutine监视
2009-1-20 12:58
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
10
楼上的楼上的方法好
2009-1-20 13:29
0
雪    币: 207
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢各位和小虾版主,问题已解决。楼上各位都是高人,感谢指点。
2009-1-20 14:14
0
雪    币: 156
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
请问LZ是用哪种方法解决的?
2009-1-20 14:19
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
13
ring3能搞定的还是尽量不要进ring0吧
2009-1-20 17:06
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
CWnd = FindWindow(ClassName, TitleName);
        ProID = GetWindowThreadProcessId(CWnd->m_hWnd,0);
2009-1-21 16:23
0
雪    币: 207
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
就是用小虾版主说的方法解决的,在我这里创建窗口的线程,就是主线程。
2009-1-21 20:16
0
游客
登录 | 注册 方可回帖
返回
//