Добрый вечер. Делаю что-то вроде уведомления, которое аккуратно выезжает справа, а при клике уезжает обратно. В принципе все работает, смотрится не плохо, но есть несколько нюансов. Во-первых, выезжающее окно забирает на себя фокус, чего делать конечно же не стоит. Тем не менее оно должно располагаться поверх остальных окон. Т.е работать это должно
примерно как Центр уведомлений на Windows 10. Это удобно, красиво и совсем не отвлекает от работы, игры, просмотра фильма, а закрывается простым кликом. Помогите сделать так, что бы оно выезжало поверх остальных окон, но без передачи ему фокуса. Это вообще реально?) Сам код правда получился немного колхозный, но это лишь первый вариант, так что он ещё 100500 раз переделается.
примерно как Центр уведомлений на Windows 10. Это удобно, красиво и совсем не отвлекает от работы, игры, просмотра фильма, а закрывается простым кликом. Помогите сделать так, что бы оно выезжало поверх остальных окон, но без передачи ему фокуса. Это вообще реально?) Сам код правда получился немного колхозный, но это лишь первый вариант, так что он ещё 100500 раз переделается.
Код:
#include <MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3>
#include <MetroUDF-v5.1\MetroGUI-UDF\_GUIDisable.au3>
HotKeySet("{F10}","_Exit")
$nText = "Тут находится текст оповещения."
$StringLen = StringLen($nText)*9+101
$Form5 = _Metro_CreateGUI("", $StringLen, 120, @DesktopWidth+2, @DesktopHeight/4, False)
$ClickedLabel = GUICtrlCreateLabel("", 0, 0, $StringLen, 120)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlCreateIcon("C:\Users\Konstantin\Desktop\Autoit\icons\notification.ico",-1,20,40,64,64)
$Notification = GUICtrlCreateLabel($nText, 101, 61, $StringLen, 20)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlSetFont(-1, 12, 400, 0, "Arial", 5)
GUICtrlCreateLabel("Оповещение",10, 8, 90, 20)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlSetFont(-1, 11, 400, 0, "Arial", 5)
GUISetState(@SW_SHOW,$Form5)
SoundPlay(@WindowsDir&"\media\ring07.wav", 0)
WinMove($Form5, "", @DesktopWidth-$StringLen+2, Default, Default, Default, Random(5,10,1))
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $ClickedLabel
WinMove($Form5, "", @DesktopWidth+2, Default, Default, Default, Random(5,10,1))
GUISetState(@SW_HIDE,$Form5)
GUIDelete($Form5)
EndSwitch
WEnd
Func _Exit()
_Metro_GUIDelete($Form5)
Exit
EndFunc