Hey,
da ich gerade an meinem Taskmanager sitz hab ich gedacht ich veröffentlich mal ein Recht nützliche Funktion _ProcessGetWindows ($vProcess, $iFilterEmptyTitle = 0, $iWindowState = 0). Für $vProcess muss der Prozessname oder Pid angeben werden. Mit $iFilterEmptyTitle könnt ihr bestimmen das nur Title mit Text in die List kommen.
$iWindowState ist ein von den Wertden von WinGetState, also zb 2 wenn du nur sichtbare Fenster in der Liste möchtest.
Spoiler anzeigen
func _ProcessGetWindows ( $vProcess, $iFilterEmptyTitle = 0, $iWindowState = 0)
Local $avWinlist = WinList (), $iCount = 0, $avWindows
dim $avWindows[1][2]
$iPid = ProcessExists ( $vProcess )
if $iPid = 0 Then Return SetError (1,0,0)
for $i = 1 to UBound ( $avWinList )-1
$sTitle = $avWinlist[$i][0]
$hWnd = $avWinlist[$i][1]
$iProcessId = WinGetProcess ($hWnd)
if $sTitle = '' and $iFilterEmptyTitle then ContinueLoop
if $iWindowState and not BitAND(WinGetState ($hWnd,''), $iWindowState) then ContinueLoop
if $iProcessId = $iPid Then
if $iCount = UBound ($avWindows) Then
ReDim $avWindows[$iCount+2][2]
EndIf
$avWindows[$iCount][0] = $sTitle
$avWindows[$iCount][1] = $hWnd
$iCount += 1
EndIf
Next
if $iCount = 0 Then
Return SetError (2,0,0)
EndIf
ReDim $avWindows[$iCount][2]
Return $avWindows
EndFunc
Beispiel:
Spoiler anzeigen
#include <Array.au3>
$array = _ProcessGetWindows ("firefox.exe",1,2) ;Gibt alle sichtbaren und Fenster mit Title zurück
_ArrayDisplay ($array) ;bei mir ist jetzt ein Element in der List nämlich Beitrag bearbeiten - _ProcessGetWindows - Skripte - .: autoit.de :. - Das deutsche AutoIt-Forum - Mozilla Firefox