Funktionsreferenz

WinGetCaretPos

Gibt die Koordinaten der aktuellen Cursorposition des Fensters im Vordergrund zurück.

WinGetCaretPos ( )

 

Parameter

Keine.

 

Rückgabewert

Erfolg: Gibt ein Array mit zwei Elementen und folgenden Informationen zurück:
$array[0] = X Koordinate
$array[1] = Y Koordinate
Fehler: Setzt @error auf 1.

 

Bemerkungen

WinGetCaretPos gibt bei "Multiple Document Interface (MDI)"-Programmen eventuell nicht die genauen Werte zurück, falls als Option "absolute CaretCoordMode" (siehe unten) genutzt wurde. Im Beispiel wird eine Annäherung (workaround) dargestellt. Hinweis: Manche Programme liefern - ungeachtet der aktuellen Cursorposition - statische Koordinaten!

 

Verwandte Funktionen

CaretCoordMode (Option)

 

Beispiel


$a = WinGetCaretPos()
If Not @error Then ToolTip("Erste Methode: Position", $a[0], $a[1])
sleep(2000)

$b = _CaretPos()
If Not @error Then ToolTip("Zweite Methode: Position", $b[0], $b[1])
sleep(2000)

;Eine zuverlässigere Methode, um die Koordinaten in MDI Texteditoren herauszufinden ("Multiple Document Interface")
Func _CaretPos()
    Local $x_adjust =  5
    Local $y_adjust = 40

    Opt("CaretCoordMode", 0)              ; Relativer Modus
    Local $c = WinGetCaretPos()           ; Relative Cursor Koordinaten
    Local $w = WinGetPos("")              ; Fenster Koordinaten
    Local $f = ControlGetFocus("","")     ; Textregion "handle"
    Local $e = ControlGetPos("", "", $f)  ; Textregion Koordinaten

    Local $t[2]
    If IsArray($c) and IsArray($w) and IsArray($e) Then
        $t[0] = $c[0] + $w[0] + $e[0] + $x_adjust
        $t[1] = $c[1] + $w[1] + $e[1] + $y_adjust
        Return $t     ; Absolute Bildschirm Koordinaten des Cursors
    Else
        SetError(1)
    EndIf
EndFunc