如何分别获取多个相同进程的PID标识[已解决]
本帖最后由 yang3114 于 2011-7-16 09:29 编辑比如我同时启动了3个QQ,如果分别获取这3个QQ.exe的PID 本帖最后由 netegg 于 2011-7-15 20:13 编辑
#include<array.au3>
Dim $list = ProcessList(), $j = 0
$aPro = _ArrayFindAll($list, 'qq', 0, 0, 0, 1, 0)
Dim $aRet
For $i In $aPro
$aRet[$j] = $list[$i]
$aRet[$j] = $list[$i]
$j += 1
Next
_ArrayDisplay($aRet, ' ')
多谢楼上的老大。能不能把它改成用msgbox一个一个的显示出来。不让它一起显示出来。 本帖最后由 netegg 于 2011-7-15 20:52 编辑
#include<array.au3>
Dim $list = ProcessList()
$aPro = _ArrayFindAll($list, 'qq', 0, 0, 0, 1, 0)
For $i In $aPro
msgbox(0, $aPro[$i], $aPro[$i])
Next 多谢楼上的老大。能不能把它改成用msgbox一个一个的显示出来。不让它一起显示出来。
yang3114 发表于 2011-7-15 20:38 http://www.autoitx.com/images/common/back.gif
汗,基础有点太差了吧,竟然不知道操作数组,感觉是:老大,能不能喂我饭?
netegg 发表于 2011-7-15 20:50 http://www.autoitx.com/images/common/back.gif
老大,不好意思再打扰一下。你这个运行的时候出现错误。
本帖最后由 daiyu116 于 2011-7-16 09:59 编辑
要学会看帮助和举一反三
#include<array.au3>
Global $str="qq"
;返回所有进程的名称和PID,并放入$list数组中
Dim $list = ProcessList()
;在$list数组中查找到包含$str关键字的数组元素
$aPro = _ArrayFindAll($list,$str, 0, $list, 0, 1, 0)
If @error Then
MsgBox(0,"提示","未找到包含"&$str&"的进程!")
Exit
EndIf
;枚举
For $i In $aPro
msgbox(0, "信息","进程名称是"&$list[$i]&",对应pid是"&$list[$i])
Next
{:face (356):}多谢楼上的。非常感谢! 本帖最后由 daiyu116 于 2011-7-16 10:20 编辑
回复 7# daiyu116
回复 8# yang3114
7楼的代码是返回包含指定关键字的进程信息
如果,进程名称非常确定,用下面的代码更简洁一些,用svchost.exe进程作例
#include<array.au3>
Global $str="svchost.exe"
Dim $list = ProcessList($str)
If @error Then
MsgBox(0,"提示","未找到命名为"&$str&"的进程!")
Exit
EndIf
For $i=1 To $list
msgbox(0, "信息","进程名称是"&$list[$i]&",对应pid是"&$list[$i])
Next
因为你的问题里,已经确定是查找所有名为qq.exe的进程的PID,所以建议你用本楼的方法。 楼上的方法好
页:
[1]