Dim $PID, $Msg
$list = ProcessList("qq.exe")
For $i = 1 To $list[0][0]
$PID &= $list[$i][1] & ','
Next
$PID = StringTrimRight($PID, 1)
$A_PID = StringSplit($PID, ",")
$var = WinList()
For $s = 1 To $A_PID[0]
For $i = 1 To $var[0][0]
If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then
$win2pid = WinGetProcess($var[$i][1])
If $win2pid = $A_PID[$s] Then
$Msg &= '进程PID ' & $A_PID[$s] & ' 窗口句柄 ' & $var[$i][1] & @CRLF
ExitLoop
EndIf
EndIf
Next
Next
MsgBox(0, '通过进程PID得到窗口句柄', $Msg)
Func IsVisible($handle)
If BitAND(WinGetState($handle), 2) Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>IsVisible
通过进程PID来获取窗口句柄 |