Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сворачивание окна в трей и создание в трее меню управления окном.

Ответить
Настройки темы
[решено] Сворачивание окна в трей и создание в трее меню управления окном.

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353


Конфигурация

Профиль | Отправить PM | Цитировать


Помогите, пожалуйста, объединить два скрипта в один. Идея такая: после открытия окна и произведения с ним каких-либо действий, его надо свернуть в трей с созданием меню, из которого это окно можно или закрыть, или развернуть. Способ свернуть окно в трей я нашел на форумах:
Код: Выделить весь код
#NoTrayIcon
#include <GUIConstantsEx.au3>

;

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)

$hGUI = GUICreate("Пример в трей", 300, 200)

$RestoreItem = TrayCreateItem("Восстановить.")
TrayItemSetOnEvent(-1, "_RestoreFromTray_Proc")

TraySetOnEvent(-13, "_RestoreFromTray_Proc")
TraySetClick(1)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case -3
            ExitLoop
        Case -4
            GUISetState(@SW_HIDE)
            TraySetState(1)
    EndSwitch
WEnd

Func _RestoreFromTray_Proc()
    If BitAND(WinGetState($hGUI), 2) = 2 Then Return
    TraySetState(2)
    GUISetState(@SW_SHOW)
    GUISetState(@SW_RESTORE)
EndFunc
Окно прекрасно сворачивается в трей и разворачивается (спасибо автору скрипта, к сожалению, не знаю, кто он).
Также на форумах я нашел образец красивого меню трея:
Код: Выделить весь код
#NoTrayIcon
#include <ModernMenuRaw.au3>
#include <GUIConstantsEx.au3>

$hTrayIcon = _TrayIconCreate("Проба")
_TrayIconSetClick(-1, 9)
_TrayIconSetState()
$nTrayMenu = _TrayCreateContextMenu()
$Line_TrayItem = _TrayCreateItem("Развернуть.")
_TrayItemSetIcon(-1, "shell32.dll", 135)
_TrayCreateItem("")
_TrayItemSetIcon(-1, "", 0)
$Exit_TrayItem = _TrayCreateItem("Выход.")
_TrayItemSetIcon(-1, "shell32.dll", 28)
_SetTrayIconBkColor(0xC46200)
_SetTraySelectBkColor(0xC46200)
_SetTraySelectTextColor(0x0000FF)
_SetTrayTextColor(0xFF0000)
_SetTrayBkColor(0x85BBDD)

While 1
    Switch GUIGetMsg()
        Case $Line_TrayItem
            MsgBox(0, "", "Нажато ""Развернуть.""")
        Case $Exit_TrayItem
            _TrayIconDelete($hTrayIcon)
            Exit
    EndSwitch
WEnd
Также большое спасибо неизвестным для меня авторам скрипта и UDF ModernMenuRaw.au3.

Теперь - проблема. Эти оба скрипта прекрасно работают по отдельности, но объединить их в один скрипт, с сохранением полной функциональности обоих, у меня не хватает то ли знаний, то ли соображухи.
Огромная просьба ко всем гуру AutoIt-а. Помогите, пожалуйста, объединить эти два скрипта.

Отправлено: 17:52, 22-12-2009

 

Пользователь


Сообщения: 143
Благодарности: 24

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <ModernMenuRaw.au3>
;

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)

$hTrayIcon = _TrayIconCreate("Проба")
_TrayIconSetClick(-1, 9)
_TrayIconSetState()
$nTrayMenu = _TrayCreateContextMenu()
$Line_TrayItem = _TrayCreateItem("Развернуть.")
_TrayItemSetIcon(-1, "shell32.dll", 135)
_TrayCreateItem("")
_TrayItemSetIcon(-1, "", 0)
$Exit_TrayItem = _TrayCreateItem("Выход.")
_TrayItemSetIcon(-1, "shell32.dll", 28)
_SetTrayIconBkColor(0xC46200)
_SetTraySelectBkColor(0xC46200)
_SetTraySelectTextColor(0x0000FF)
_SetTrayTextColor(0xFF0000)
_SetTrayBkColor(0x85BBDD)

$hGUI = GUICreate("Пример в трей", 300, 200)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case -4
            GUISetState(@SW_HIDE)
        Case $Line_TrayItem
            ;MsgBox(0, "", "Нажато ""Развернуть.""")
	    GUISetState(@SW_SHOW)
	    GUISetState(@SW_RESTORE)
        Case $Exit_TrayItem
            _TrayIconDelete($hTrayIcon)
            Exit
     EndSwitch	
WEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:20, 22-12-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


HORRIBLE, Большое спасибо! я промучился с этим практически весь день.

Отправлено: 18:54, 22-12-2009 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Сворачивание окна в трей и создание в трее меню управления окном.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Сворачивание (не скрытие) консольного окна. Smarty Скриптовые языки администрирования Windows 6 15-05-2009 20:12
Разное - AutoIt Помогите написать скрипт закрытия окна выполнения сценария в трее ShadowMas Программирование и базы данных 1 05-07-2008 14:04
Интерфейс - Принудительное сворачивание окон в трей N_bie Microsoft Windows 2000/XP 15 06-04-2008 02:45
CMD/BAT - Сворачивание окна KoSTeTZ Скриптовые языки администрирования Windows 0 19-01-2008 01:08




 
Переход