区分同一程序的多个实例

时间:2013-12-23 04:22:55

标签: bots autoit pid

如何通过PID定位进程?我有同一个程序的多个实例同时处于活动状态,但我的代码仅适用于一个。我想针对所有实例。

那么放置PID(我的意思是第一行)或者如何区分多个实例呢?

Global $WindowTitle = "World of Warcraft"

Global $PauseKey = "{F7}"
Global $TerminateKey = "{F8}"
Global $PVPOpenKey = "{h}"
Global $MacroBindKey = "{8}{a}"

Global $Paused = False

HotKeySet( $PauseKey, "Pause" )
HotKeySet( $TerminateKey, "Terminate" )

While 1
    If Not $Paused Then
        ControlSend( $WindowTitle, "", 0, $PVPOpenKey )
        Sleep( 5000 )
        ControlSend( $WindowTitle, "", 0, $MacroBindKey )
    EndIf

    Sleep( 500 )
WEnd

Func Pause()
    $Paused = Not $Paused
EndFunc

Func Terminate()
    Exit
EndFunc

1 个答案:

答案 0 :(得分:5)

为了获得某些流程的所有PID,您可以使用ProcessList()

; List PIDs for wow.exe processes
$list = ProcessList("wow.exe")
For $i = 1 To $list[0][0]
    MsgBox(0, "Hi!", $list[$i][1])
Next