找回密码
 加入
搜索
查看: 4663|回复: 9

[AU3基础] 已知某一进程的所有线程号能否查出该进程的PID?

  [复制链接]
发表于 2014-4-5 21:45:51 | 显示全部楼层 |阅读模式
WINDOWS中单进程多线程的程序,现在已知某一进程的所有线程号能否用AU3查出该进程的PID?比如WINDOWS 7中有一个进程的PID是3592,对应的线程号为:
3348
4624
4820
4784
4888
4908
4896
4900
4768
4744
4736
4540
4528
4532
4936
4956
5000
5028
5044
4480
现在能否通过这些线程号,用AU3查询到该进程的PID3592呢?
发表于 2014-4-5 22:05:07 | 显示全部楼层
給您參考
Opt("MustDeclareVars", 1)
Dim $i,$vPID,$temp
Local $list = ProcessList()
For $i = 1 To $list[0][0]
$temp=$list[$i][0]
        $vPID=$list[$i][1]
        MsgBox(0,$temp,$vPID)
Next
我的機器人SKYPE帳號:taiwan-game
发表于 2014-4-6 09:02:07 | 显示全部楼层
本帖最后由 user3000 于 2014-4-6 09:04 编辑

回复 1# smooth

这是获取父子进程的问题。
#Include <WinAPIEx.au3>
_WinAPI_EnumChildProcess ('进程PID' )
_WinAPI_GetParentProcess ( '进程PID' )
 楼主| 发表于 2014-4-8 21:08:02 | 显示全部楼层
回复 3# user3000

我的问题好像还不是父子进程的问题。比如我启动了NC财务软件的中间件JAVA.EXE,然后会它使用ORACLE数据库的用户USER来与NC财务软件连接。我在ORACLE的SQLPLUS中查询到与用户USER发生连接的SPID有20个数字,都不是使用查询父子进程函数查到到PID。
发表于 2014-4-9 09:10:43 | 显示全部楼层
本帖最后由 nmgwddj 于 2014-4-9 09:13 编辑

Thread32First
OpenThread
ZwQueryInformationThread

http://social.msdn.microsoft.com ... um=visualcpluszhchs

用C改过一个别人的例子,具体实现方法是用Thread32First枚举系统所有线程,根据线程ID使用OpenThread打开,再用ZwQueryInformationThread获取所属进程PID
 楼主| 发表于 2014-4-12 10:37:27 | 显示全部楼层
回复 5# nmgwddj

好像这个可以达到目的,但是是用C语言完成的,不知道如何转换成AU3。
发表于 2014-4-14 00:06:12 | 显示全部楼层
回复 6# smooth

收点钱,自己写了1个小时,在Thread32First步骤一直返回错误,后来百度了一下找到这里的源码http://www.codeproject.com/threads/pausep.asp。参考 _ProcSuspend 函数



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-4-16 09:16:18 | 显示全部楼层
学习了,学习了,
 楼主| 发表于 2014-4-16 22:11:06 | 显示全部楼层
回复  smooth

收点钱,自己写了1个小时,在Thread32First步骤一直返回错误,后来百度了一下找到这里的源 ...
nmgwddj 发表于 2014-4-14 00:06


要的就是这样的,非常感谢!慢慢研究。
发表于 2014-4-21 00:18:04 | 显示全部楼层
不知根据线程查出进程有什么实际作用?能否举一两实例,楼主
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 06:20 , Processed in 0.084724 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表