Win Funktionen auch mit ProzessPid?

  • Win Funktionen auch mit ProzessPid?

    Also, für ein kleines Projekt möchte ich mit Fenstern etwas rumspielen. Funktionen wie WinFlash, WinWait[...] und so verlangen aber nach dem Fensternamen, aber ich habe nur die ProzessPid...
    Gibt es eine Möglichkeite das so zu ersetzen, irgendeine UDF oder so?

    MfG

  • Hab da was gefunden:

    Spoiler anzeigen
    [autoit]

    $handle = _ProcessGetWinEx(4248)

    [/autoit] [autoit][/autoit] [autoit]

    WinFlash($handle[1],"",5)

    [/autoit] [autoit][/autoit] [autoit]

    Func _ProcessGetWinEx($ivPid, $svClass = "", $svTitle = "", $svText = "", $ivReturnOnlyFirstMatch = False)

    $ivPid = ProcessExists($ivPid)
    If Not $ivPid Then Return(SetError(1, 0, 0))

    Local $avwArray = WinList()
    Local $avRet[1] = [0]

    For $i = 1 To $avwArray[0][0]
    $avClass = DllCall("User32.dll", "int", "GetClassName", "hwnd", $avwArray[$i][1], "str", "", "int", 4096)
    If WinGetProcess($avwArray[$i][1]) = $ivPid Then
    If $svClass = "" Or (IsArray($avClass) And $avClass[2] = $svClass) Then
    If ($svTitle = "" Or StringInStr($avwArray[$i][0], $svTitle)) And ($svText = "" Or StringInStr(WinGetText($avwArray[$i][1]), $svText)) Then
    $avRet[0] += 1
    ReDim $avRet[$avRet[0]+1]
    $avRet[$avRet[0]] = $avwArray[$i][1]
    If $ivReturnOnlyFirstMatch Then
    $avRet = $avret[1]
    ExitLoop
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    Return $avRet
    EndFunc

    [/autoit]
  • Danke, hat mir sehr geholfen. Habe jetzt einen Code der funktionieren muss, kann es aber erst nachher testen.
    Melde mich dann wieder.

    Edit
    Ok, danke. Geht einwandfrei!

    Einmal editiert, zuletzt von NoName (1. November 2008 um 14:23)