Hallo Freunde der automatisierten Schritte,
(1)
Ich möchte ein Fenster von Monitor 1 auf Monitor 2 verschieben.
Wenn es auf Monitor 2 ist, soll es auf Monitor 1 verschoben werden.
(entweder zentriert, linksbündig oder rechtsbündig)
Bei WinMove fand ich keine Option, dass man Monitor 1, 2 ... angeben kann.
Kennt Ihr eine Funktion, eine UDF, mit der man das machen kann?
WinMove ($Fenster_aktuell_handle, Monitor 2, zentriert)
(2)
Thema Monitor ... in der Hilfe fand ich folgendes Beispiel
_WinAPI_MonitorFromPoint (englische Hilfe)
Unter Win 8 / 64 erhalte ich folgenden Fehler - Console:
@@ Debug(20) : $hMonitor = 0x00000000
Wo liegt der Fehler?
AutoIt
#include <WinAPIGdi.au3>
#include <WinAPISys.au3>
Local $tPos = _WinAPI_GetMousePos()
DllStructSetData($tPos, 1, 12000)
Local $hMonitor = _WinAPI_MonitorFromPoint($tPos, 0)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMonitor = ' & $hMonitor & @CRLF & '>Error code: ' & @error & ' Extended code: 0x' & Hex(@extended) & @CRLF) ;### Debug Console
Local $aData = _WinAPI_GetMonitorInfo($hMonitor)
If IsArray($aData) Then
ConsoleWrite('Handle: ' & $hMonitor & @CRLF)
ConsoleWrite('Rectangle: ' & DllStructGetData($aData[0], 1) & ', ' & DllStructGetData($aData[0], 2) & ', ' & DllStructGetData($aData[0], 3) & ', ' & DllStructGetData($aData[0], 4) & @CRLF)
ConsoleWrite('Work area: ' & DllStructGetData($aData[1], 1) & ', ' & DllStructGetData($aData[1], 2) & ', ' & DllStructGetData($aData[1], 3) & ', ' & DllStructGetData($aData[1], 4) & @CRLF)
ConsoleWrite('Primary: ' & $aData[2] & @CRLF)
ConsoleWrite('Device name: ' & $aData[3] & @CRLF)
EndIf
Alles anzeigen
Viele Grüße und vielen Dank
AutoMit