Что нового

как открыть развернуть окно скрипта двойным кликом мыши по иконке в трее?

agikon

Знающий
Сообщения
789
Репутация
17
всех форумчан с праздниками!

подскажите пожалуйста.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
Opt("TrayOnEventMode",1) ;Включить / выключить функции уведомления OnEvent для трея.
Opt("TrayMenuMode",1) ;Отключаем стандартное меню.

GUICreate("Form1", 627, 436)
TraySetOnEvent(-13, 'Show') ;Определяет пользовательскую функцию.
GUISetState(@SW_HIDE)

Do
Until GUIGetMsg() = -3

;Функция отображения GUI окна.
Func Show()
	GUISetState(@SW_SHOW)
EndFunc


-13 - это $TRAY_EVENT_PRIMARYDOUBLE, взято из библиотеке Constants.au3.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
agikon,
Мой вариант.
Код:
#include <Constants.au3>
#include <GuiConstantsEx.au3>

Opt('TrayOnEventMode', 1)
Opt('TrayMenuMode', 1)

$hGui = GUICreate('Test', 300, 300)
_ShowHide()
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, '_ShowHide')
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _ShowHide()
	If BitAND(WinGetState($hGui), 2) Then
		GUISetState(@SW_HIDE, $hGui)
		TraySetToolTip('Двойной клик - показать окно')
	Else
		GUISetState(@SW_SHOW, $hGui)
		TraySetToolTip('Двойной клик - скрыть окно')
	EndIf
EndFunc   ;==>_ShowHide
 

mike2003

Новичок
Сообщения
10
Репутация
0
Я хочу совместить кастомное меню и двойной клик.
В хелпе для TraySetOnEvent есть вроде подходящий пример.
Но он совсем не работает. Функция TrayEvent никогда не вызывается.
Вот так работает и любой клик левой мыши и обычное меню на правой.
Код:
#include <Constants.au3>
#include <GuiConstantsEx.au3>

TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "ExitScript")

Opt('TrayOnEventMode', 1)
Opt("TrayAutoPause",0)
Opt("TrayMenuMode", 2)

$hGui = GUICreate('Test', 300, 300)
_ShowHide()
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, '_ShowHide')
TraySetOnEvent($TRAY_EVENT_PRIMARYUP, '_aaa')
TraySetClick (16)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _aaa()
    Beep(2000,40)
EndFunc

Func _ShowHide()
    If BitAND(WinGetState($hGui), 2) Then
        GUISetState(@SW_HIDE, $hGui)
        TraySetToolTip('Двойной клик - показать окно')
    Else
        GUISetState(@SW_SHOW, $hGui)
        TraySetToolTip('Двойной клик - скрыть окно')
    EndIf
EndFunc   ;==>_ShowHide

Func ExitScript()
    Exit
EndFunc   ;==>ExitScript
 
Последнее редактирование:
Верх