Projekt mit Windows_API

  • Hallo,

    ich bin im Moment dabei zu evaluieren, ob AutoIt für mein Project geeignet ist. Indem Projekt geht es um Softwaresupport. Dafür muss in einem Fall ermittelt werden, welches Fenster im Fordergrund ist (in dem moment in dem der support benötigt wird).

    Die Anforderung ist folgende:
    - foreground windows ermitteln
    - winodw-titel abfragen
    - prozessname/prozessId abfragen
    - ...

    für window-titel und Prozessname gibt es von autoIt die nötigen Funktionen.
    http://www.autoitscript.com/autoit3/docs/f…ProcessList.htm

    http://www.autoitscript.com/autoit3/docs/f…nGetProcess.htm

    http://www.autoitscript.com/autoit3/docs/f…/WinGetText.htm

    http://www.autoitscript.com/autoit3/docs/f…WinGetTitle.htm


    Jedoch frage ich mich, wie Autoit automatisch feststellen kann (ohne dass der benutzer darauf klickt, oder ohne, dass es im focus ist) welches Fenster im Vordergrund ist. deshalb würde ich auf einen winApi call zurückgreifen. Dafür bietet autoIt auch schon etwas ...da ich aber leider auch kein autoIt Profi bin (fange nun erst damit an) wollte ich fragen, ob mir jemand ein kleines Beispiel zu diesem WinApi-Call über AutoIt geben kann http://www.autoitscript.com/autoit3/docs/l…roundWindow.htm geben kann. den winAPI Call durchzufüren dürfte kein Problem sein. Jedoch weis ich nicht, wie ich mit dem Handle dann umgehen soll, damit autoIt damit arbeiten kann? Oder ist das bereits ein autoIt-Window-Handle? denn normalerweise liefern WinAPI Calls ja nur eine interne Adresse.

    gibt es zudem eine Funktion, welche mir zu einem handle den ersten windowTitle + ProzessId usw. ermittelt?

    Grüße

  • Ich verstehe nicht ganz wo das Problem liegt...

    [autoit]

    #include <WinAPI.au3>

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

    $hWindow = _WinAPI_GetForegroundWindow()
    $sTitle = WinGetTitle($hWindow)
    $iProcessID = WinGetProcess($hWindow)

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

    ConsoleWrite($hWindow & @LF & $sTitle & @LF & $sProcess & @LF)

    [/autoit]

    LG
    Christoph :)

  • Danke für eure Antworten.

    BinDannMalWeg: Ich wusste nicht, dass der Call auf die WinApi ein autoit-Handle zurückgibt. Ich bin noch Anfänger und kenne nur die WinApi an sich, da wäre es ein wenig komplizierter geworden.

    @IPU: Um das gerade sichtbare Fenster zu bekommen, gibt es ja die WinApi-Funktion "GetForeGroundWindow", allesdings wie gesagt, wusst eich nicht, dass das ein richtiger AutoIt-Wrapper ist. PS: Was darf ich unter "geist" verstehen :) ?

    Eine Frage hätte ich noch. da geht es mir nun nicht um BeispielCode. Ich weis, dass man mit AutoIt auch per HTTP Post Daten an einen Server senden kann. Kann man dabei auch auf einfache Art und Weise direkt Daten (Responses) empfangen? (Ja/Nein reicht)
    Dank für eure Antworten.

  • Eine Frage hätte ich noch. da geht es mir nun nicht um BeispielCode. Ich weis, dass man mit AutoIt auch per HTTP Post Daten an einen Server senden kann. Kann man dabei auch auf einfache Art und Weise direkt Daten (Responses) empfangen? (Ja/Nein reicht)


    Natürlich geht das, ein Request mit POST wäre ziemlich unsicher, wenn man die Response nicht auswertet.

    Wer andern eine Bratwurst brät
    der hat ein Bratwurstbratgerät.