Funktionreferenz


_WinAPI_MonitorFromPoint

Beschreibung anzeigen in

Ermittelt ein Handle zu der Monitornummer welcher den festgelegten Punkt enthält

#include <WinAPIGdi.au3>
_WinAPI_MonitorFromPoint ( $tPOINT [, $iFlag = 1] )

Parameter

$tPOINT $tagRECT Struktur, welche den Punkt der virtuellen Koordinaten enthält.
$iFlag [optional] Das Flag, welches festlegt, was zurückgegeben werden soll, wenn der Punkt in keinem Monitor zu sehen ist.
Dieser Parameter kann einer der folgenden Werte sein.
$MONITOR_DEFAULTTONULL
$MONITOR_DEFAULTTONEAREST (Default)
$MONITOR_DEFAULTTOPRIMARY

Rückgabewert

Erfolg: Ein Handle zu der Monitornummer zurück, welcher den Punkt enthält. Alternativ wird ein Wert abhängig von der $MONITOR_* Konstante zurückgegeben.
Fehler: 0 und setzt das @error Flag auf ungleich null.

Siehe auch

Suche nach MonitorFromPoint in der MSDN Bibliothek.

Beispiel

#include <WinAPIGdi.au3>
#include <WinAPIMisc.au3>

; Um zu überprüfen, wie dies auf einem "Dual Monitor" funktioniert, die Maus auf den zweiten Monitor bewegen und dieses Skript erneut ausführen
_Example()

Func _Example()
    ; Mauskoordinaten ermitteln
    Local $tPos = _WinAPI_GetMousePos()
    ConsoleWrite('MouseX = ' & DllStructGetData($tPos, 1) & @CRLF)
    ConsoleWrite('MouseY = ' & DllStructGetData($tPos, 2) & @CRLF)

    ; $hMonitor aus den zuvor definierten Mauskoordinaten ermitteln
    Local $hMonitor = _WinAPI_MonitorFromPoint($tPos)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMonitor = ' & $hMonitor & @CRLF & '>Fehlercode: ' & @error & '    Extended code: 0x' & Hex(@extended) & @CRLF) ;### Debug Console

    ; die Monitor $aData für die zuvor definierten Koordinaten abrufen
    Local $aData = _WinAPI_GetMonitorInfo($hMonitor)
    If Not @error Then
        ConsoleWrite('Handle:      ' & $hMonitor & @CRLF)
        ConsoleWrite('Rechteck:   ' & DllStructGetData($aData[0], 1) & ', ' & DllStructGetData($aData[0], 2) & ', ' & DllStructGetData($aData[0], 3) & ', ' & DllStructGetData($aData[0], 4) & @CRLF)
        ConsoleWrite('Arbeitsbereich:   ' & DllStructGetData($aData[1], 1) & ', ' & DllStructGetData($aData[1], 2) & ', ' & DllStructGetData($aData[1], 3) & ', ' & DllStructGetData($aData[1], 4) & @CRLF)
        ConsoleWrite('Primär:     ' & $aData[2] & @CRLF)
        ConsoleWrite('Gerätename: ' & $aData[3] & @CRLF)
    EndIf
EndFunc   ;==>_Example