_WinGetHandleByPID: Fenstertitel über Prozess-ID ermitteln

Antworten
localhorst
Beiträge: 571
Registriert: 17.12.2012, 20:19

_WinGetHandleByPID: Fenstertitel über Prozess-ID ermitteln

Beitrag von localhorst »

Parameter:
$iPID = Prozess-ID, des Prozesses, zu dem der Fenstertitel ermittelt werden soll.

Return:
Window-Handle des Prozesses. Um den Fenstertitel als String zu ermitteln, die Funktion folgendermaßen verwenden:

Code: Alles auswählen

Dim $sWindowTitle = WinGetTitle(_WinGetHandleByPID($iPID))

Code: Alles auswählen

Func _WinGetHandleByPID($iPID, $iArray = 1)
    Local $aError[1] = [0], $aWinList, $sReturn
    If IsString($iPID) Then
        $iPID = ProcessExists($iPID)
    EndIf
    $aWinList = WinList()
    For $A = 1 To $aWinList[0][0]
        If WinGetProcess($aWinList[$A][1]) = $iPID And BitAND(WinGetState($aWinList[$A][1]), 2) Then
            If $iArray Then
                Return $aWinList[$A][1]
            EndIf
            $sReturn &= $aWinList[$A][1] & Chr(1)
        EndIf
    Next
    If $sReturn Then
        Return StringSplit(StringTrimRight($sReturn, 1), Chr(1))
    EndIf
    Return SetError(1, 0, $aError)
EndFunc
Antworten