<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://znil.net/index.php?action=history&amp;feed=atom&amp;title=AutoIt%3AZ-Slider-DemoTest-V2.au3</id>
	<title>AutoIt:Z-Slider-DemoTest-V2.au3 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://znil.net/index.php?action=history&amp;feed=atom&amp;title=AutoIt%3AZ-Slider-DemoTest-V2.au3"/>
	<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=AutoIt:Z-Slider-DemoTest-V2.au3&amp;action=history"/>
	<updated>2026-04-28T09:46:34Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in znilwiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://znil.net/index.php?title=AutoIt:Z-Slider-DemoTest-V2.au3&amp;diff=4033&amp;oldid=prev</id>
		<title>BLinz am 19. September 2013 um 08:19 Uhr</title>
		<link rel="alternate" type="text/html" href="https://znil.net/index.php?title=AutoIt:Z-Slider-DemoTest-V2.au3&amp;diff=4033&amp;oldid=prev"/>
		<updated>2013-09-19T08:19:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
[[Kategorie:AutoIt]]&lt;br /&gt;
Original veröffenlicht von mir unter: http://autoit.de/index.php?page=Thread&amp;amp;postID=239817#post239817&lt;br /&gt;
----&lt;br /&gt;
Z-Slider-DemoTest-V2 ist ein Beispiel, wie man GUI-Fenster in AutoIt sliden lässt.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Fenster dockt sich an einen Bildschirmrand an und gleitet bis auf einen kleinen Rand aus dem Bildschirm.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir der Mauszeiger auf diesen Rand bewegt, so gleitet das Fenster wieder herein.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Meine Lösung arbeitet problemlos auf Multimonitor-Systemen - egal wie die Bildschirme / Monitore angeordenet sind&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ihr könnt das Fenster einfach auf einen anderen Bildschirm verschieben - und schon rastet es auf diesen ein&amp;lt;br&amp;gt;&lt;br /&gt;
An einer Version, die sinnlose Anordnungen erkennt arbeite ich noch (also z.B. in der Mitte zwischen 2 Monitoren)&amp;lt;br&amp;gt;&lt;br /&gt;
Im Link zum AutoIt Forum ganz oben auf der Seite findet Ihr auch eine simplere Lösung die ohne Monitorprüfung arbeitet.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|19.09.2013: Neue Version V2.1 nach Fehlerbehebung - danke an Artur Babecki aus Polen!}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Z-Slider-V2.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier der Download der .au3 Datei: [[Media:Z-Slider-DemoTest-V2.1.au3|Z-Slider-DemoTest-V2.1.au3]]&lt;br /&gt;
Hier der Quellcode:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Demo für Sliden von Fenstern (sanftes hinein- oder hinausgleiten) von Fenstern aus dem Bereich des Bildschirms&lt;br /&gt;
; Es bleibt ein kleiner Fensterrand zu sehen - wird die Maus wieder über diesen bewegt, schiebt sich das&lt;br /&gt;
; Fenster wieder in den Bildschirm - wo es bleibt bis die Maus wieder ausserhalb des Fensters bewegt wird.&lt;br /&gt;
; 11/2011 von BLinz nach dem mich SEuBo von autoit.de auf die Idee gebracht hat,&lt;br /&gt;
; Original Beitrag: http://www.autoit.de/index.php?page=Thread&amp;amp;postID=238836&amp;amp;highlight=slide+gui#post238836&lt;br /&gt;
; Version 2.1 nach Fehlerkorrektur - Hinweis von Artur Babecki - Danke&lt;br /&gt;
&lt;br /&gt;
;Das Fenster mit Auswahl wohin ge-slided werden soll,&lt;br /&gt;
;Immer noch gerne mit dem Koda erstellt (sind ja nur ein paar Label und Buttons)&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;StaticConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;EditConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;SliderConstants.au3&amp;gt;&lt;br /&gt;
;#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#Region ### START Koda GUI section ### Form=C:\_AutoIT\Z-Slider\FormMainWindow.kxf&lt;br /&gt;
$FormMainWindow = GUICreate(&amp;quot;Z-Slider-DemoTest V2&amp;quot;, 403, 433, 691, 240)&lt;br /&gt;
$LabelWhereIsTheMouse = GUICtrlCreateLabel(&amp;quot;Maus ist ausserhalb des Fensters&amp;quot;, 8, 88, 384, 25, BitOR($SS_CENTER,$SS_CENTERIMAGE,$WS_BORDER))&lt;br /&gt;
GUICtrlSetFont(-1, 12, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
GUICtrlSetColor(-1, 0xFF0000)&lt;br /&gt;
$GroupGlobal = GUICtrlCreateGroup(&amp;quot; Globale Abfrage &amp;quot;, 8, 8, 384, 72)&lt;br /&gt;
$LabelMouseXLabel = GUICtrlCreateLabel(&amp;quot;MouseX:&amp;quot;, 16, 28, 60, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMouseYLabel = GUICtrlCreateLabel(&amp;quot;MouseY:&amp;quot;, 16, 54, 60, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMouseX = GUICtrlCreateLabel(&amp;quot;0&amp;quot;, 90, 30, 66, 17)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMouseY = GUICtrlCreateLabel(&amp;quot;0&amp;quot;, 90, 56, 66, 17)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
GUICtrlCreateGroup(&amp;quot;&amp;quot;, -99, -99, 1, 1)&lt;br /&gt;
$GroupPosSlideWindow = GUICtrlCreateGroup(&amp;quot; Position Slide-Fenster &amp;quot;, 8, 120, 249, 201)&lt;br /&gt;
$ButtonTop = GUICtrlCreateButton(&amp;quot;Oben&amp;quot;, 80, 144, 100, 25)&lt;br /&gt;
$ButtonBottom = GUICtrlCreateButton(&amp;quot;Unten&amp;quot;, 80, 280, 100, 25)&lt;br /&gt;
$ButtonLeft = GUICtrlCreateButton(&amp;quot;Links&amp;quot;, 16, 174, 60, 100)&lt;br /&gt;
$ButtonRight = GUICtrlCreateButton(&amp;quot;Rechts&amp;quot;, 184, 174, 60, 100)&lt;br /&gt;
$LabelScreen = GUICtrlCreateLabel(&amp;quot;Label1&amp;quot;, 80, 174, 100, 100, BitOR($SS_WHITERECT,$WS_BORDER))&lt;br /&gt;
GUICtrlCreateGroup(&amp;quot;&amp;quot;, -99, -99, 1, 1)&lt;br /&gt;
$GroupMonitors = GUICtrlCreateGroup(&amp;quot; aktueller Monitor Informationen &amp;quot;, 8, 328, 385, 97)&lt;br /&gt;
$LabelMonitorAktuell = GUICtrlCreateLabel(&amp;quot;Aktuell:&amp;quot;, 16, 352, 68, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorGesamt = GUICtrlCreateLabel(&amp;quot;Gesamt:&amp;quot;, 216, 352, 60, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorPositionX = GUICtrlCreateLabel(&amp;quot;PositionX:&amp;quot;, 16, 376, 84, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorPositionY = GUICtrlCreateLabel(&amp;quot;PositionY:&amp;quot;, 16, 400, 84, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorBreite = GUICtrlCreateLabel(&amp;quot;Breite:&amp;quot;, 216, 376, 60, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorHoehe = GUICtrlCreateLabel(&amp;quot;Höhe:&amp;quot;, 216, 400, 44, 20)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 800, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorAktuellWert = GUICtrlCreateLabel(&amp;quot;-&amp;quot;, 108, 352, 70, 20, $SS_RIGHT)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorPositionXWert = GUICtrlCreateLabel(&amp;quot;-&amp;quot;, 108, 376, 70, 20, $SS_RIGHT)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorPositionYWert = GUICtrlCreateLabel(&amp;quot;-&amp;quot;, 108, 400, 70, 20, $SS_RIGHT)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorGesamtWert = GUICtrlCreateLabel(&amp;quot;-&amp;quot;, 318, 352, 70, 20, $SS_RIGHT)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorBreiteWert = GUICtrlCreateLabel(&amp;quot;-&amp;quot;, 318, 376, 70, 20, $SS_RIGHT)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
$LabelMonitorHoeheWert = GUICtrlCreateLabel(&amp;quot;-&amp;quot;, 318, 400, 70, 20, $SS_RIGHT)&lt;br /&gt;
GUICtrlSetFont(-1, 10, 400, 0, &amp;quot;Courier New&amp;quot;)&lt;br /&gt;
GUICtrlCreateGroup(&amp;quot;&amp;quot;, -99, -99, 1, 1)&lt;br /&gt;
$Group1 = GUICtrlCreateGroup(&amp;quot; Schritte           Pause &amp;quot;, 264, 120, 129, 201)&lt;br /&gt;
$SliderSteps = GUICtrlCreateSlider(272, 168, 46, 149, BitOR($GUI_SS_DEFAULT_SLIDER,$TBS_VERT,$TBS_BOTH,$TBS_ENABLESELRANGE))&lt;br /&gt;
GUICtrlSetLimit(-1, 100, 2)&lt;br /&gt;
GUICtrlSetData(-1, 5)&lt;br /&gt;
$SliderSleepTime = GUICtrlCreateSlider(338, 168, 46, 149, BitOR($GUI_SS_DEFAULT_SLIDER,$TBS_VERT,$TBS_BOTH,$TBS_ENABLESELRANGE))&lt;br /&gt;
GUICtrlSetLimit(-1, 100, 20)&lt;br /&gt;
GUICtrlSetData(-1, 20)&lt;br /&gt;
$InputSteps = GUICtrlCreateInput(&amp;quot;10&amp;quot;, 275, 144, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))&lt;br /&gt;
$InputSleepTime = GUICtrlCreateInput(&amp;quot;100&amp;quot;, 341, 144, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))&lt;br /&gt;
GUICtrlCreateGroup(&amp;quot;&amp;quot;, -99, -99, 1, 1)&lt;br /&gt;
GUISetState(@SW_SHOW)&lt;br /&gt;
#EndRegion ### END Koda GUI section ###&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Ersteinmal die Grundeinstellungen ....&lt;br /&gt;
Global $nMsg ; Hier landet die Benachrichtigung von GUIGetMsg() - ob und welcher Button gedrückt wurde&lt;br /&gt;
Global $bWindowsIsOut = False ;Ob das Fenster gerade aus-ge-slidet ist (ja oder nein)&lt;br /&gt;
Global $sWindowsIsAt = &amp;quot;Left&amp;quot; ;Wohin wir das Fenster aus dem Bildschirm schieben&lt;br /&gt;
Global $iRealyBottom ; Sicherheitsabfrage falls der Benutzer das Fenster unten haben will&lt;br /&gt;
Global $aCurrentMonitors ; Hier kommen die Anzahl, Auflösung und Position der Monitore rein&lt;br /&gt;
Global $iCurScreenX ; Hier die X Position des aktuellen Monitors auf dem die GUI ist&lt;br /&gt;
Global $iCurScreenY ; dito Y Position&lt;br /&gt;
Global $iCurScreenWidth ; dito Breite&lt;br /&gt;
Global $iCurScreenHeight ; dito Höhe&lt;br /&gt;
Global $iCurrentScreenNumber ; Auf welchem Monitor/Bildschirm ist die GUI gerade?&lt;br /&gt;
Global $iLastScreenNummer = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WinSetOnTop($FormMainWindow,&amp;quot;&amp;quot;,1) ;Fenster immer ganz oben über allen anderen&lt;br /&gt;
GUICtrlSetState($ButtonLeft, $GUI_DISABLE) ; Die Demo startet immer mit links, also den Button ausgrauen&lt;br /&gt;
GUICtrlSetData($SliderSleepTime,0) ; Slider auf Startwert&lt;br /&gt;
GUICtrlSetData($SliderSteps,10) ; Slider auf Startwert&lt;br /&gt;
&lt;br /&gt;
$aCurrentMonitors = _GetMonitors() ;Daten der angeschlossenen Monitore holen&lt;br /&gt;
;	$aMonitors[0] with number of Monitors,&lt;br /&gt;
;   $aMonitors[x][0] Monitor X Screen wide&lt;br /&gt;
;   $aMonitors[x][1] Monitor X Screen height&lt;br /&gt;
;   $aMonitors[x][2] Monitor X Screen Position X&lt;br /&gt;
;   $aMonitors[x][3] Monitor X Screen Position Y&lt;br /&gt;
&lt;br /&gt;
; Los geht es - die Hauptschleife&lt;br /&gt;
While 1&lt;br /&gt;
	$nMsg = GUIGetMsg()&lt;br /&gt;
	Switch $nMsg&lt;br /&gt;
		Case $GUI_EVENT_CLOSE&lt;br /&gt;
			; Jemand hat auf das rote X oben rechts geklickt&lt;br /&gt;
			Exit 0&lt;br /&gt;
		Case $ButtonLeft&lt;br /&gt;
			;Fenster soll nach Links sliden&lt;br /&gt;
			$sWindowsIsAt = &amp;quot;Left&amp;quot; ; Neue Richtung setzen&lt;br /&gt;
			GUICtrlSetState($ButtonLeft, $GUI_DISABLE) ; Button ausgrauen / deaktivieren&lt;br /&gt;
			GUICtrlSetState($ButtonRight, $GUI_ENABLE) ; Button aktivieren&lt;br /&gt;
			GUICtrlSetState($ButtonTop, $GUI_ENABLE) ; Button aktivieren&lt;br /&gt;
			GUICtrlSetState($ButtonBottom, $GUI_ENABLE) ; Button aktivieren&lt;br /&gt;
		Case $ButtonRight&lt;br /&gt;
			; nach Rechts, sonst sinngemäß wie zuvor&lt;br /&gt;
			$sWindowsIsAt = &amp;quot;Right&amp;quot;&lt;br /&gt;
			GUICtrlSetState($ButtonLeft, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonRight, $GUI_DISABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonTop, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonBottom, $GUI_ENABLE)&lt;br /&gt;
		Case $ButtonTop&lt;br /&gt;
			; nach Oben, sonst sinngemäß wie zuvor&lt;br /&gt;
			$sWindowsIsAt = &amp;quot;Top&amp;quot;&lt;br /&gt;
			GUICtrlSetState($ButtonLeft, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonRight, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonTop, $GUI_DISABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonBottom, $GUI_ENABLE)&lt;br /&gt;
		Case $ButtonBottom&lt;br /&gt;
			$sWindowsIsAt = &amp;quot;Bottom&amp;quot;&lt;br /&gt;
			GUICtrlSetState($ButtonLeft, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonRight, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonTop, $GUI_ENABLE)&lt;br /&gt;
			GUICtrlSetState($ButtonBottom, $GUI_DISABLE)&lt;br /&gt;
	EndSwitch&lt;br /&gt;
	; Ende der GUI-Auswertung (ob der Benutzer etwas geklickt hat)&lt;br /&gt;
	; Alles was jetzt kommt wird ständig ausgeführt&lt;br /&gt;
&lt;br /&gt;
	; Hat jemand einen der Slider bewegt? Wenn ja aber pronto umsetzen&lt;br /&gt;
	If (GUICtrlRead($SliderSleepTime) * 5) &amp;lt;&amp;gt; GUICtrlRead($InputSleepTime) Then&lt;br /&gt;
		GUICtrlSetData($InputSleepTime,(GUICtrlRead($SliderSleepTime) * 5))&lt;br /&gt;
	EndIf&lt;br /&gt;
	If GUICtrlRead($SliderSteps) &amp;lt;&amp;gt; GUICtrlRead($InputSteps) Then&lt;br /&gt;
		GUICtrlSetData($InputSteps,GUICtrlRead($SliderSteps))&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	;Aktuelle Mausposition in die GUI schreiben (nur als Info)&lt;br /&gt;
	$aMousePosCurrent = MouseGetPos(); MouseGetPos gibt ein Array zurück,[0] = X, [1] = Y Position der Maus&lt;br /&gt;
	GUICtrlSetData($LabelMouseX,$aMousePosCurrent[0])&lt;br /&gt;
	GUICtrlSetData($LabelMouseY,$aMousePosCurrent[1])&lt;br /&gt;
&lt;br /&gt;
	;Prüfen wir auf welchem Bildschirm wir sind - aber nur wenn das Fenster nicht ausgeslidet ist - sonst kommt was falsches raus&lt;br /&gt;
	If $bWindowsIsOut = False Then&lt;br /&gt;
		$iCurrentScreenNumber = _GetCurrentMonitor($FormMainWindow, $aCurrentMonitors)&lt;br /&gt;
		; Fix the &amp;quot;User set Window to right or bottom and move the window out at top or left&amp;quot;&lt;br /&gt;
		If $iCurrentScreenNumber = 0 Then&lt;br /&gt;
			$iCurrentScreenNumber = 1&lt;br /&gt;
		EndIf&lt;br /&gt;
		; End fix - thx at Artur&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; Schauen wir mal ob die Maus über dem Fenster ist&lt;br /&gt;
	If _Is_Mouse_in_Windows($FormMainWindow) = 1 Then ; siehe _Is_Mouse_in_Windows Funktion, 1 heisst ja&lt;br /&gt;
		GUICtrlSetData($LabelWhereIsTheMouse, &amp;quot;Maus ist im Fenster!&amp;quot;) ; Text in GUI ändern&lt;br /&gt;
		GUICtrlSetColor($LabelWhereIsTheMouse, 0x00FF00) ; Text grün färben&lt;br /&gt;
		If $bWindowsIsOut = True Then ; Fenster nur ein-sliden wenn es auch draussen war&lt;br /&gt;
			_SlideWindow($FormMainWindow, $aCurrentMonitors, $iCurrentScreenNumber, $sWindowsIsAt, &amp;quot;In&amp;quot;, 4, GUICtrlRead($SliderSteps), GUICtrlRead($SliderSleepTime)) ; Das eigentich Sliden, siehe Funktion _SlideWindow&lt;br /&gt;
			$bWindowsIsOut = False ; Fenster ist nun nicht draussen!&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else ; Maus ist nicht über den Fenster&lt;br /&gt;
		GUICtrlSetData($LabelWhereIsTheMouse,&amp;quot;Maus ist ausserhalb des Fensters&amp;quot;) ; Text ändern&lt;br /&gt;
		GUICtrlSetColor($LabelWhereIsTheMouse, 0xFF0000); Text rot färben&lt;br /&gt;
		If $bWindowsIsOut = False Then ; Fenster nur aus-sliden wenn es auch drin war&lt;br /&gt;
			_SlideWindow($FormMainWindow, $aCurrentMonitors, $iCurrentScreenNumber, $sWindowsIsAt, &amp;quot;Out&amp;quot;, 4, GUICtrlRead($SliderSteps), GUICtrlRead($SliderSleepTime))&lt;br /&gt;
			$bWindowsIsOut = True ; Fenster ist nun draussen!&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	;In die GUI die aktuellen Werten über den Monitor eintragen&lt;br /&gt;
	If $iCurrentScreenNumber &amp;lt;&amp;gt; $iLastScreenNummer Then&lt;br /&gt;
		GUICtrlSetData($LabelMonitorAktuellWert, $iCurrentScreenNumber)&lt;br /&gt;
		GUICtrlSetData($LabelMonitorGesamtWert, $aCurrentMonitors[0][0])&lt;br /&gt;
		GUICtrlSetData($LabelMonitorBreiteWert, $aCurrentMonitors[$iCurrentScreenNumber][0])&lt;br /&gt;
		GUICtrlSetData($LabelMonitorHoeheWert, $aCurrentMonitors[$iCurrentScreenNumber][1])&lt;br /&gt;
		GUICtrlSetData($LabelMonitorPositionXWert, $aCurrentMonitors[$iCurrentScreenNumber][2])&lt;br /&gt;
		GUICtrlSetData($LabelMonitorPositionYWert, $aCurrentMonitors[$iCurrentScreenNumber][3])&lt;br /&gt;
		$iLastScreenNummer = $iCurrentScreenNumber&lt;br /&gt;
	EndIf&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name ..........: _SlideWindow&lt;br /&gt;
; Description ...:&lt;br /&gt;
; Syntax ........: _SlideWindow(Byref $hwitchWindow, $sWitchSide, $sInOrOut[, $iWindowBorderSize = 4[, $iSlideSteps = 4[,$iTimebetweenSlideSteps = 100]]])&lt;br /&gt;
; Parameters ....: $hwitchWindow        - A handle to the Target-Window&lt;br /&gt;
;                  $aScreenValues		- Refer to a Array witch was created by _GetMonitors()&lt;br /&gt;
;                  $iScreenNum          - Number of Current Screen / Monitor&lt;br /&gt;
;                  $sWitchSide          - Where the Window should be slide? Possible Values are&lt;br /&gt;
;                                         &amp;quot;Left&amp;quot;, &amp;quot;Right&amp;quot;, &amp;quot;Top&amp;quot;, &amp;quot;Bottom&amp;quot;&lt;br /&gt;
;                  $sInOrOut            - Slide window in or out? Possible Values are&lt;br /&gt;
;                                         &amp;quot;In&amp;quot;, &amp;quot;Out&amp;quot;&lt;br /&gt;
;                  $iWindowBorderSize   - [optional] Size of Window Border (How many Pixel you will see if slided in)&lt;br /&gt;
;                  $iSlideSteps         - [optional] slide &amp;quot;animation&amp;quot;  in how many Steps? Default is 4.&lt;br /&gt;
;                  $iTimebetweenSlideSteps- [optional] Time in ms between the the steps, default is 100&lt;br /&gt;
; Return values .: None&lt;br /&gt;
; Author ........: BLinz&lt;br /&gt;
; Link ..........: http://znil.net&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _SlideWindow(ByRef $hwitchWindow, ByRef $aScreenValues, $iScreenNum, $sWitchSide, $sInOrOut, $iWindowBorderSize = 4, $iSlideSteps = 4, $iTimebetweenSlideSteps = 100)&lt;br /&gt;
	Local $aScreenSize[4], $aWindowsSizeCurrent&lt;br /&gt;
	Local $iFrom, $iTo, $iSteps&lt;br /&gt;
;~ 	$aScreenSize = WinGetPos(&amp;quot;Program Manager&amp;quot;) ; In $aScreenSize steht nun die Größe der Desktopfläche&lt;br /&gt;
;~ 	                                            ; (hätte auch @DesktopHeight und @DesktopWidth nehmen können)&lt;br /&gt;
	; Statt der ScreenSize des gesamten Desktops arbeiten wir nun &amp;quot;pro Bildschirm), die Werte lassen wir uns in&lt;br /&gt;
	; $aScreenValues und $iScreenNum&lt;br /&gt;
	; Damit ich nicht alle Formeln anpassen musste habe ich hier die Variablen gleichgesetzt ...&lt;br /&gt;
	$aScreenSize[0] = $aScreenValues[$iScreenNum][2]&lt;br /&gt;
	$aScreenSize[1] = $aScreenValues[$iScreenNum][3]&lt;br /&gt;
	$aScreenSize[2] = $aScreenValues[$iScreenNum][0]&lt;br /&gt;
	$aScreenSize[3] = $aScreenValues[$iScreenNum][1]&lt;br /&gt;
&lt;br /&gt;
	$aWindowSizePosCurrent = WinGetPos($hwitchWindow) ;und hier holen wir uns die Größe und Position des Fensters&lt;br /&gt;
	Switch $sWitchSide ; Wohin soll das Fenster ?&lt;br /&gt;
		Case &amp;quot;Left&amp;quot; ; Aha, linke Seite&lt;br /&gt;
			$iMovePixelperStep = Round($aWindowSizePosCurrent[2] / $iSlideSteps,0) ; mal eben die Schrittweite in Pixel für die &amp;quot;Animation&amp;quot; berechnen&lt;br /&gt;
			For $i = $iSlideSteps To 0 Step -1 ; Anzahl der Schritte auf 0 herunterzählen - ja hier ist ein &amp;quot;Fehler&amp;quot; - er macht&lt;br /&gt;
											   ; Immer einen Schritt mehr als angegeben - aber der letzte ist 0 und damit Endposition&lt;br /&gt;
				If $sInOrOut = &amp;quot;Out&amp;quot; Then ; Ok, Fenster hinaus schubsen&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, $aScreenSize[0] - ($aWindowSizePosCurrent[2] - ($iMovePixelperStep * $i)) + $iWindowBorderSize,$aWindowSizePosCurrent[1])&lt;br /&gt;
&lt;br /&gt;
					; $aWindowSizePosCurrent[1] = Y-Position, bleibt unverändert&lt;br /&gt;
					; $aWindowSizePosCurrent[2] = Breite&lt;br /&gt;
					; ganz Links ist 0, davon ziehen wir pro Animationsschritt $i mal die Schrittweite ab. Ist i$ = 0 haben wir Endposition&lt;br /&gt;
					; Dazu die Breite des Randes damit dieser Sichtbar bleibt&lt;br /&gt;
				Else ;Fenster wieder reinholen&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, $aScreenSize[0] + ($iWindowBorderSize - ($iMovePixelperStep * $i)),$aWindowSizePosCurrent[1])&lt;br /&gt;
					;wie zuvor, jedoch + statt -, wegen der zusätzlichen BorderSize kommt das Fenster ganz heraus&lt;br /&gt;
				EndIf&lt;br /&gt;
				Sleep($iTimebetweenSlideSteps)&lt;br /&gt;
			Next&lt;br /&gt;
		Case &amp;quot;Right&amp;quot;&lt;br /&gt;
			$iMovePixelperStep = Round($aWindowSizePosCurrent[2] / $iSlideSteps,0)&lt;br /&gt;
			For $i = $iSlideSteps To 0 Step -1&lt;br /&gt;
				If $sInOrOut = &amp;quot;Out&amp;quot; Then&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, ($aScreenSize[2] + $aScreenSize[0]) - ($iMovePixelperStep * $i),$aWindowSizePosCurrent[1])&lt;br /&gt;
				Else&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, ($aScreenSize[2] + $aScreenSize[0]) - ($aWindowSizePosCurrent[2] - ($iMovePixelperStep * $i)) - $iWindowBorderSize,$aWindowSizePosCurrent[1])&lt;br /&gt;
				EndIf&lt;br /&gt;
				Sleep($iTimebetweenSlideSteps)&lt;br /&gt;
			Next&lt;br /&gt;
		Case &amp;quot;Top&amp;quot;&lt;br /&gt;
			$iMovePixelperStep = Round($aWindowSizePosCurrent[2] / $iSlideSteps,0)&lt;br /&gt;
			For $i = $iSlideSteps To 0 Step -1&lt;br /&gt;
				If $sInOrOut = &amp;quot;Out&amp;quot; Then&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, $aWindowSizePosCurrent[0], $aScreenSize[1] - ($aWindowSizePosCurrent[3] - ($iMovePixelperStep * $i)) + $iWindowBorderSize)&lt;br /&gt;
				Else&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, $aWindowSizePosCurrent[0], $aScreenSize[1] + ($iWindowBorderSize - ($iMovePixelperStep * $i)))&lt;br /&gt;
				EndIf&lt;br /&gt;
				Sleep($iTimebetweenSlideSteps)&lt;br /&gt;
			Next&lt;br /&gt;
		Case &amp;quot;Bottom&amp;quot;&lt;br /&gt;
			$iMovePixelperStep = Round($aWindowSizePosCurrent[2] / $iSlideSteps,0)&lt;br /&gt;
			For $i = $iSlideSteps To 0 Step -1&lt;br /&gt;
				If $sInOrOut = &amp;quot;Out&amp;quot; Then&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, $aWindowSizePosCurrent[0], ($aScreenSize[1] + $aScreenSize[3]) - ($iMovePixelperStep * $i))&lt;br /&gt;
				Else&lt;br /&gt;
					WinMove($hwitchWindow,&amp;quot;&amp;quot;, $aWindowSizePosCurrent[0], ($aScreenSize[1] + $aScreenSize[3]) - ($aWindowSizePosCurrent[3] - ($iMovePixelperStep * $i)) - $iWindowBorderSize)&lt;br /&gt;
				EndIf&lt;br /&gt;
				Sleep($iTimebetweenSlideSteps)&lt;br /&gt;
			Next&lt;br /&gt;
	EndSwitch&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name ..........: _Is_Mouse_in_Windows&lt;br /&gt;
; Description ...:&lt;br /&gt;
; Syntax ........: _Is_Mouse_in_Windows(Byref $hwitchWindow[, $iWindowBorderSize = 4])&lt;br /&gt;
; Parameters ....: $hwitchWindow        - A handle to the Target-Window&lt;br /&gt;
;                  $iWindowBorderSize   - [optional] Size of the Border of Window in Pixel&lt;br /&gt;
; Return values .: 1 = Mouse is in the Window&lt;br /&gt;
;                  0 = Mouse ist NOT in the Windows&lt;br /&gt;
; Author ........: BLinz&lt;br /&gt;
; Link ..........: http://znil.net&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _Is_Mouse_in_Windows(ByRef $hwitchWindow, $iWindowBorderSize = 4)&lt;br /&gt;
	Local $aMousePosCurrent, $aWindowPosCurrent&lt;br /&gt;
	$aMousePosCurrent = MouseGetPos()&lt;br /&gt;
	$aWindowPosCurrent = WinGetPos($hwitchWindow)&lt;br /&gt;
	; $aWindowPosCurrent[0] = X-Position&lt;br /&gt;
	; $aWindowPosCurrent[1] = Y-Position&lt;br /&gt;
	; $aWindowPosCurrent[2] = Breite&lt;br /&gt;
	; $aWindowPosCurrent[3] = Höhe&lt;br /&gt;
	; Die BorderSize berücksichtigen wir weil die nicht zu 100% den Fenstermaßen zählt, also kleiner Aufschlag&lt;br /&gt;
	;Rechts vom Fenster?&lt;br /&gt;
	If $aMousePosCurrent[0] &amp;gt; ($aWindowPosCurrent[0] + $aWindowPosCurrent[2] + $iWindowBorderSize) Then Return 0&lt;br /&gt;
	;Links vom Fenster?&lt;br /&gt;
	If $aMousePosCurrent[0] &amp;lt; ($aWindowPosCurrent[0] - $iWindowBorderSize) Then Return 0&lt;br /&gt;
	;Unterhalb des Fensters?&lt;br /&gt;
	If $aMousePosCurrent[1] &amp;gt; ($aWindowPosCurrent[1] + $aWindowPosCurrent[3] + $iWindowBorderSize) Then Return 0&lt;br /&gt;
	;Oberhalb des Fensters?&lt;br /&gt;
	If $aMousePosCurrent[1] &amp;lt; ($aWindowPosCurrent[1] - $iWindowBorderSize) Then Return 0&lt;br /&gt;
	; Nix hat gepasst, Maus ist über dem Fenster&lt;br /&gt;
	Return 1&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name ..........: _GetCurrentMonitor&lt;br /&gt;
; Description ...:&lt;br /&gt;
; Syntax ........: _GetCurrentMonitor(Byref $hwitchWindow, Byref $aGetMonitors)&lt;br /&gt;
; Parameters ....: $hwitchWindow        - handle to the window&lt;br /&gt;
;                  $aGetMonitors        - handle to an array which was create by _GetMonitors() Function&lt;br /&gt;
; Return values .: Number of Current Monitor / Screen&lt;br /&gt;
; Author ........: BLinz&lt;br /&gt;
; Link ..........: http://znil.net&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _GetCurrentMonitor(ByRef $hwitchWindow, ByRef $aGetMonitors)&lt;br /&gt;
	Local $aWindowPosCurrent&lt;br /&gt;
	$aWindowPosCurrent = WinGetPos($hwitchWindow)&lt;br /&gt;
	; $aWindowPosCurrent[0] = X-Position&lt;br /&gt;
	; $aWindowPosCurrent[1] = Y-Position&lt;br /&gt;
	; $aWindowPosCurrent[2] = Breite&lt;br /&gt;
	; $aWindowPosCurrent[3] = Höhe&lt;br /&gt;
	; $aGetMonitors[0][0] with number of Monitors,&lt;br /&gt;
	; $aGetMonitors[x][0] Monitor X Screen wide&lt;br /&gt;
	; $aGetMonitors[x][1] Monitor X Screen height&lt;br /&gt;
	; $aGetMonitors[x][2] Monitor X Screen Position X&lt;br /&gt;
	; $aGetMonitors[x][3] Monitor X Screen Position Y&lt;br /&gt;
	For $i = 1 To $aGetMonitors[0][0]&lt;br /&gt;
		If $aWindowPosCurrent[0] &amp;gt;= $aGetMonitors[$i][2] And $aWindowPosCurrent[0] &amp;lt;= ($aGetMonitors[$i][2] + $aGetMonitors[$i][0]) Then&lt;br /&gt;
			;X Achse stimmt schon mal&lt;br /&gt;
			If $aWindowPosCurrent[1] &amp;gt;= $aGetMonitors[$i][3] And $aWindowPosCurrent[1] &amp;lt;= ($aGetMonitors[$i][3] + $aGetMonitors[$i][1]) Then&lt;br /&gt;
				Return $i ; haben wir den aktuellen Monitor gefunden!&lt;br /&gt;
			EndIf&lt;br /&gt;
		EndIf&lt;br /&gt;
	Next&lt;br /&gt;
EndFunc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; #FUNCTION# ====================================================================================================================&lt;br /&gt;
; Name ..........: _GetMonitors&lt;br /&gt;
; Description ...:&lt;br /&gt;
; Syntax ........: _GetMonitors()&lt;br /&gt;
; Parameters ....:&lt;br /&gt;
; Return values .: Array[0][0] with number of Monitors,&lt;br /&gt;
;                  Array[x][0] Monitor X Screen wide&lt;br /&gt;
;                  Array[x][1] Monitor X Screen height&lt;br /&gt;
;                  Array[x][2] Monitor X Screen Position X&lt;br /&gt;
;                  Array[x][3] Monitor X Screen Position Y&lt;br /&gt;
; Author ........: AspirinJunkie&lt;br /&gt;
; Modified ......:&lt;br /&gt;
; Remarks .......:&lt;br /&gt;
; Related .......:&lt;br /&gt;
; Link ..........: http://autoit.de/index.php?page=Thread&amp;amp;postID=101717#post101717&lt;br /&gt;
; Example .......: No&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
Func _GetMonitors()&lt;br /&gt;
    Local $cbMonitorEnumProc = DllCallbackRegister(&amp;quot;MonitorEnumProc&amp;quot;, &amp;quot;ubyte&amp;quot;, &amp;quot;ptr;ptr;ptr;int&amp;quot;)&lt;br /&gt;
    If @error Then Return SetError(1, 0, False)&lt;br /&gt;
    Local $strctCount = DllStructCreate(&amp;quot;uint Count;uint Width[12];uint Height[12];int left[12];int top[12]&amp;quot;)&lt;br /&gt;
    If @error Then Return SetError(2, @error, False)&lt;br /&gt;
    Local $iCount&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($strctCount, &amp;quot;Count&amp;quot;, 0)&lt;br /&gt;
&lt;br /&gt;
    $Ret = DllCall(&amp;quot;User32.dll&amp;quot;, &amp;quot;ubyte&amp;quot;,&amp;quot;EnumDisplayMonitors&amp;quot;,&amp;quot;ptr&amp;quot;, 0,&amp;quot;ptr&amp;quot;, 0, &amp;quot;ptr&amp;quot;, DllCallbackGetPtr($cbMonitorEnumProc), &amp;quot;ptr&amp;quot;, DllStructGetPtr($strctCount))&lt;br /&gt;
    If @error Or $Ret[0] = 0 Then Return SetError(3, @error, False)&lt;br /&gt;
&lt;br /&gt;
    DllCallbackFree($cbMonitorEnumProc)&lt;br /&gt;
&lt;br /&gt;
    $iCount = Int(DllStructGetData($strctCount, &amp;quot;Count&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    Local $aMonitors[$iCount+1][4] = [[$iCount]]&lt;br /&gt;
&lt;br /&gt;
    For $i = 1 To $iCount&lt;br /&gt;
        $aMonitors[$i][0] = Int(DllStructGetData($strctCount, &amp;quot;Width&amp;quot;,$i))&lt;br /&gt;
        $aMonitors[$i][1] = Int(DllStructGetData($strctCount, &amp;quot;Height&amp;quot;,$i))&lt;br /&gt;
        $aMonitors[$i][2] = Int(DllStructGetData($strctCount, &amp;quot;left&amp;quot;,$i))&lt;br /&gt;
        $aMonitors[$i][3] = Int(DllStructGetData($strctCount, &amp;quot;top&amp;quot;,$i))&lt;br /&gt;
    Next&lt;br /&gt;
&lt;br /&gt;
    Return $aMonitors&lt;br /&gt;
EndFunc&lt;br /&gt;
Func MonitorEnumProc($hMonitor, $hdcMonitor, $lprcMonitor, $dwData)&lt;br /&gt;
    Local $strctRECT = DllStructCreate(&amp;quot;long left;long top;long right;long bottom&amp;quot;, $lprcMonitor)&lt;br /&gt;
    Local $strctCount = DllStructCreate(&amp;quot;uint Count;uint Width[12];uint Height[12];int left[12];int top[12]&amp;quot;, $dwData)&lt;br /&gt;
    Local $iNumber = DllStructGetData($strctCount, &amp;quot;Count&amp;quot;)&lt;br /&gt;
    Local $Height = Int(DllStructGetData($strctRECT, &amp;quot;bottom&amp;quot;))-Int(DllStructGetData($strctRECT, &amp;quot;top&amp;quot;))&lt;br /&gt;
    Local $Width = Int(DllStructGetData($strctRECT, &amp;quot;right&amp;quot;))-Int(DllStructGetData($strctRECT, &amp;quot;left&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
    DllStructSetData($strctCount, &amp;quot;Width&amp;quot;, $Width, $iNumber+1)&lt;br /&gt;
    DllStructSetData($strctCount, &amp;quot;Height&amp;quot;, $Height, $iNumber+1)&lt;br /&gt;
    DllStructSetData($strctCount, &amp;quot;left&amp;quot;, Int(DllStructGetData($strctRECT, &amp;quot;left&amp;quot;)), $iNumber+1)&lt;br /&gt;
    DllStructSetData($strctCount, &amp;quot;top&amp;quot;, Int(DllStructGetData($strctRECT, &amp;quot;top&amp;quot;)), $iNumber+1)&lt;br /&gt;
    DllStructSetData($strctCount, &amp;quot;Count&amp;quot;, $iNumber+1)&lt;br /&gt;
    Return True&lt;br /&gt;
EndFunc&lt;br /&gt;
; ===============================================================================================================================&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--[[Benutzer:BLinz|Bernhard Linz]] 10:18, 19. Sept. 2013 (CET)&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;/div&gt;</summary>
		<author><name>BLinz</name></author>
	</entry>
</feed>