本帖最后由 afan 于 2010-3-12 16:38 编辑
以下3个修改函数你可以试试~Func Pid2Handle($pid) ;这个是返回一个2维数组,句柄对应标题,你看看某个pid有多少个句柄...
Local $all = WinList(), $i, $x = 0, $pidHandle[1][2]
For $i = 1 To $all[0][0]
If WinGetProcess($all[$i][1]) = $pid Then
ReDim $pidHandle[$x + 1][2]
$pidHandle[$x][0] = $all[$i][1]
$pidHandle[$x][1] = $all[$i][0]
$x += 1
EndIf
Next
Return $pidHandle
EndFunc ;==>Pid2Handle
Func _Pid2Handle($pid) ;这个仅返回一个可见窗口的句柄
Local $all = WinList(), $i
For $i = 1 To $all[0][0]
If WinGetProcess($all[$i][1]) = $pid And BitAND(WinGetState($all[$i][1]), 2) Then Return $all[$i][1]
Next
EndFunc ;==>_Pid2Handle
Func __Pid2Handle($pid) ;这个是返回所有可见窗口的2维数组,句柄对应标题
Local $all = WinList(), $i, $x = 0, $pidHandle[1][2]
For $i = 1 To $all[0][0]
If WinGetProcess($all[$i][1]) = $pid And BitAND(WinGetState($all[$i][1]), 2) Then
ReDim $pidHandle[$x + 1][2]
$pidHandle[$x][0] = $all[$i][1]
$pidHandle[$x][1] = $all[$i][0]
$x += 1
EndIf
Next
Return $pidHandle
EndFunc ;==>__Pid2Handle
|