Что нового

Сворачивание программыв трей после нажатия кнопки

Lum

Новичок
Сообщения
61
Репутация
3
Есть программа. На форме программы 1 кнопка, после которой запускается основной скрипт. Как сделать так, чтобы после нажатия этой кнопки программа сворачивалась в трей и в нем висел только значок самой программы. Завершение работы программы должно осуществляться посредством нажатия правой кнопкой мыши на значок в трее и выборе в меню "Выход". Просмотрела несколько тем по трею, но так и не смогла разобраться. :wacko:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

#Region  ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 222, 281, 240, 547, BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU))

$Button1 = GUICtrlCreateButton("Ok", 53, 239, 115, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1 ; После нажатия кнопки запустить скрип
			Sleep (1000) ; Время после которого запуститься окно IE /00:01
			$oIE = _IECreate("http:")
			Cycle2()
	EndSwitch
WEnd
Func Cycle1()
	; ....................
EndFunc
 

madmasles

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

Opt("TrayMenuMode", 1)

$Form1 = GUICreate("", 222, 281, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
$Button1 = GUICtrlCreateButton("Ok", 53, 239, 115, 25, 0)
$exititem = TrayCreateItem("Выход")
GUISetState(@SW_SHOW)
TraySetState()

While 1
	$msg = TrayGetMsg()
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			DllCall("User32.dll", "long", "AnimateWindow", "hwnd", $Form1, "long", 800, "long", 0x4 + 0x10000)
			;GUISetState(@SW_MINIMIZE, $Form1);как один из вариантов
			;GUIDelete($Form1) ;если больше Вы это окно открывать не будете
			GUISetState(@SW_HIDE, $Form1)
			; Ваш код
	EndSwitch
	Switch $msg
		Case $exititem
			Exit
	EndSwitch
WEnd
 
Автор
L

Lum

Новичок
Сообщения
61
Репутация
3
Да, работает) Спасибо)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Lum
у меня в коде был лишний
Код:
Case $exititem
            Exit
после строки
Код:
; Ваш код
Я код поправил.
 
Верх