Что нового

Как чтобы пристарте скрипта с guiокошком запускался в трей и вызывался по меню

agikon

Знающий
Сообщения
789
Репутация
17
какой парамерт это делает?
нашел как чтобы при запуске скрипта он сразу сворачивался в панель задач а вот как в трей кто его знает.
ну например на этом окошке

Код:
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>
#include <GUICtrlCreateTFLabel.au3>


$hMain_GUI  = GUICreate('', 300, 200)
$nButton = GUICtrlCreateButton('OK', 90, 160, 100, 30)
$galochka = GUICtrlCreateCheckbox("галочка", 50, 100, 100, 20)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nButton
            sleep(10)
            If BitAND(GUICtrlRead($galochka), $GUI_CHECKED) Then
            MsgBox(64, 'Info', 'задача 1')
            Endif

    EndSwitch
    ;sleep(1)
wend
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
;~ ну например на этом окошке
#NoTrayIcon
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>
;~ #include <GUICtrlCreateTFLabel.au3>
Opt("TrayMenuMode",1)

$Show = TrayCreateItem("Show GUI")
TrayCreateItem("")
$Exit = TrayCreateItem("Exit")

TraySetState()


$hMain_GUI  = GUICreate('', 300, 200)
$nButton = GUICtrlCreateButton('OK', 90, 160, 100, 30)
$galochka = GUICtrlCreateCheckbox("галочка", 50, 100, 100, 20)

While 1
	Switch TrayGetMsg()
		Case $Show
			GUISetState(@SW_SHOW)
		Case $Exit
			Exit
	EndSwitch

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nButton
            sleep(10)
            If BitAND(GUICtrlRead($galochka), $GUI_CHECKED) Then
            MsgBox(64, 'Info', 'задача 1')
            Endif

    EndSwitch
    ;sleep(1)
wend
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
Zaramot спасибо работает.
вот только после того как развернул окошко и опять свернул то, то сворачивается уже на панел задач. вот 'n окак то можно устранить? чтобы и сворачивалось всегда в трей?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Так ?:
Код:
;~ ну например на этом окошке
#NoTrayIcon
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>
;~ #include <GUICtrlCreateTFLabel.au3>
Opt("TrayMenuMode",1)

$Show = TrayCreateItem("Show GUI")
TrayCreateItem("")
$Exit = TrayCreateItem("Exit")

TraySetState()


$hMain_GUI  = GUICreate('', 300, 200)
$nButton = GUICtrlCreateButton('OK', 90, 160, 100, 30)
$galochka = GUICtrlCreateCheckbox("галочка", 50, 100, 100, 20)

While 1
	Switch TrayGetMsg()
		Case $Show
            GUISetState(@SW_SHOWNORMAL)
			TrayItemSetState($Show, $GUI_UNCHECKED)
        Case $Exit
            Exit
    EndSwitch

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
		Case $GUI_EVENT_MINIMIZE
			GUISetState(@SW_HIDE)
        Case $nButton
            sleep(10)
            If BitAND(GUICtrlRead($galochka), $GUI_CHECKED) Then
            MsgBox(64, 'Info', 'задача 1')
            Endif
    EndSwitch
wend
 

madmasles

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

Opt('TrayMenuMode', 3)

$Show = TrayCreateItem('Show GUI')
TrayCreateItem('')
$Exit = TrayCreateItem('Exit')
TraySetState()

$hMain_GUI = GUICreate('', 300, 200, -1, -1, -1, $WS_EX_TOOLWINDOW)
$nButton = GUICtrlCreateButton('OK', 90, 160, 100, 30)
$galochka = GUICtrlCreateCheckbox('галочка', 50, 100, 100, 20)

While 1
	Switch TrayGetMsg()
		Case $Show
			If BitAND(WinGetState($hMain_GUI), 2) Then
				GUISetState(@SW_HIDE, $hMain_GUI)
				TrayItemSetText($Show, 'Show GUI')
			Else
				GUISetState(@SW_SHOW, $hMain_GUI)
				TrayItemSetText($Show, 'Hide GUI')
			EndIf
		Case $Exit
			Exit
	EndSwitch

	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			GUISetState(@SW_HIDE, $hMain_GUI)
			TrayItemSetText($Show, 'Show GUI')
		Case $nButton
			If BitAND(GUICtrlRead($galochka), $GUI_CHECKED) Then
				MsgBox(64, 'Info', 'задача 1')
			EndIf
	EndSwitch
WEnd
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
спасибо ребята всё работает.
 
Верх