AutoIt Window Tool: Position Umrandeter Felder ermitteln:

  • Hi.

    Also ich habe da nochmal diese Frage:

    Und zwar habe ich mein AutoIt Window Tool geöffnet und möchte von Folgender Umrandeter Tabelle die Position ermitteln:

    Spoiler anzeigen


    Ich habe gedacht das könnte ich ganz einfach mit ControlGetPos! Aber da bekomme ich folgende Koordinaten:

    Spoiler anzeigen


    Also habe ich gedacht; z.B. die 6 Ist der Abstand vom Anfang der Tabelle zum Menü oben. Aber ich möchte ja die Koordinaten auf die Desktophöhe- und Breite bezogen.

    Die Tabellen sind Manchmal größer Manchmal kleiner aber haben immer die Selbe Class ;)

    Gibt es noch einen Anderen Befehl ? Oder Muss ich erst eine Andere Größe berechnen und davon denn die ControlGetPos Koordinaten subtrahieren ?


    Lg,

    Lenny


    Ps: Hier ist mein Source:

    Spoiler anzeigen
    [autoit]


    AutoItSetOption("WinTitleMatchMode", 2)

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

    #include <ScreenCapture.au3>

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

    If Not ProcessExists("Latein-Woerterbuch.exe") Then MsgBox(64, "Achtung", "Das Latein Wörterbuch läuft nicht. Bitte Starten sie das Programm erst.")

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

    HotKeySet("{F4}", "_gridprint")

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

    While 1
    WEnd

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

    Func _gridprint()
    $gridpos = ControlGetPos("Latein-Wörterbuch", "", "#327701")

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

    If @error Then MsgBox(64, "Achtung", "Die Tabelle wurde nicht gefunden.")

    MsgBox(0, "", $gridpos[0] & "," & $gridpos[1] & "," & $gridpos[2] & "," & $gridpos[3])

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

    _ScreenCapture_Capture(WinGetTitle("Latein-Wörterbuch", "")&".jpg", $gridpos[2], $gridpos[3],$gridpos[0], $gridpos[1])
    EndFunc ;==>_gridprint

    [/autoit]

    Jaja, Moo does the Cow!

  • Du musst mit WinGetPos die Koordinaten des Fensters holen und zu den Positionsangaben bei _ScreenCapture_Capture hinzuzählen.
    ControlGetPos gibt nur Koordinaten relativ zum Fenster zurück.
    Also so ungefähr:

    [autoit]

    _ScreenCapture_Capture(WinGetTitle("Systemeigenschaften", "")&".jpg", $gridpos[0] + $windowpos[0], $gridpos[1] + $windowpos[1], $gridpos[0] + $gridpos[2] + $windowpos[0], $gridpos[1] + $gridpos[3] + $windowpos[1])

    [/autoit]
  • Vielen Dank.

    Links, Rechts und Unten passt es jetzt. Nur noch die Fensterleiste muss noch ab ;)

    Aber das guck ich mir selber nochmal an.

    Vielen Dank, LG


    Lenny

    Jaja, Moo does the Cow!