Hi,
ich habe eine GUI (ganz oben am Bildschirm, leicht rechts versetzt).
Folgendes will ich machen:
Bleibe ich mit der Maus min. 1 Sekunden oben (Y=0) stehen, so wird die GUI eingeblendet.
Vorrausetzung ist, dass ich in x-Richtung innerhalb der GUI bin.
Ist die GUI sichtbar soll diese wieder verschwinden, wenn die Maus sich min. 1 Sekunde ausserhalb der GUI befindet.
Dies hört sich im ersten Moment einfach an, ich meine jedoch dass es sich in sich hat.
Momentan funktioniert das meiste. Wenn ich jedoch kürzer als 1 Sekunde ob auf Y=0 stehen bleibe, erscheint die GUI trotzdem
Kann natürlich auch sein. dass ich auf dem Schlauch stehe und das alles viel einfacher geht
Spoiler anzeigen
#Region ;************ Includes ************
#Include <WindowsConstants.au3>
#EndRegion ;************ Includes ************
Global $gui_breite = 600
Global $gui_hoehe = 60
Global $gui_oben = 0
Global $gui_oben_beginn = $gui_oben - $gui_hoehe + 5
Global $gui_pos = (@DesktopWidth - $gui_breite) / 2 + 300
Global $gui_beginn = $gui_pos
Global $gui_ende = $gui_beginn + $gui_breite
Global $titel = "Test123"
Global $h_gui = GUICreate($titel, $gui_breite, $gui_hoehe, $gui_pos, $gui_oben_beginn, $WS_POPUP, $WS_EX_ACCEPTFILES)
[/autoit] [autoit][/autoit] [autoit]Global $begin = 999999999 ;Beginn Dummy
Global $begin_xxx = $begin ;
Global $einblenden = 0 ;einblenden aktivieren
Global $ausblenden = 0 ;ausblenden aktivieren
Global $status = 0 ;0 = ausgeblendet / 1 = eingeblendet
Global $hoehe_grenze = 0 ;Y-Koordinate zum einblenden
Global $zeitgrenze = 1000 ;1 Sekunde bis zum ein- bzw. ausblenden
Global $mouse_pos, $aktiviert
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
$mouse_pos = MouseGetPos()
If $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] = $hoehe_grenze Then
If $status = 0 Then
If $einblenden = 0 Then
$einblenden = 1
$begin = TimerInit()
$ausblenden = 0
$aktiviert = 1
EndIf
EndIf
ElseIf $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 And $mouse_pos[1] <= $gui_hoehe Then
If $status = 1 Then
$ausblenden = 0
$einblenden = 0
$begin = $begin_xxx
EndIf
ElseIf $mouse_pos[0] < $gui_beginn Or $mouse_pos[0] > $gui_ende Or $mouse_pos[1] > $hoehe_grenze Then
If $status = 1 Then
If $ausblenden = 0 Then
$ausblenden = 1
$begin = TimerInit()
$einblenden = 0
$aktiviert = 1
EndIf
EndIf
ElseIf $mouse_pos[0] >= $gui_beginn And $mouse_pos[0] <= $gui_ende And $mouse_pos[1] > 0 And $status = 1 Then
If $status = 0 Then
$ausblenden = 0
$einblenden = 0
$begin = $begin_xxx
$hoehe_grenze = 0
EndIf
EndIf
[/autoit] [autoit][/autoit] [autoit]If $aktiviert = 1 Then
If TimerDiff($begin) > $zeitgrenze Then
If $einblenden = 1 And $status = 0 Then
WinMove($titel, "", Default, $gui_oben, Default, 50)
$status = 1
$einblenden = 0
$hoehe_grenze = $gui_hoehe
ElseIf $ausblenden = 1 And $status = 1 Then
WinMove($titel, "", Default, $gui_oben_beginn)
$status = 0
$ausblenden = 0
$hoehe_grenze = 0
EndIf
EndIf
EndIf
WEnd