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

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

Ответить
Настройки темы
Работа с меню в системном трее

Аватара для sashadeg

Старожил


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

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


Вот код который создаёт небольшое меню в системном трее, но есть проблемка...
После этого кода идёт продолжение программы (не будет ведь программа из одной менюшки в трее состоять ) И именно этот код уже не работает... Можно продолжить выполнение прораммы, если в трее кликнешь по "EXIT", но тогда прекращает работу само меню трея (не раб кнопки)

Что здесь нужно доработать, чтобы и программа продолжалась, и меню исправно работало?

Код: Выделить весь код
#Include <Constants.au3>
#NoTrayIcon

Opt("TrayMenuMode",1)   ; Default tray menu items (Script Paused/Exit) will not be shown.

$prefsitem  = TrayCreateItem("Preferences")
TrayCreateItem("")
$aboutitem  = TrayCreateItem("About")
TrayCreateItem("")
$exititem   = TrayCreateItem("Exit")

TraySetState()

While 1
    $msg = TrayGetMsg()
    Select
        Case $msg = 0
            ContinueLoop
        Case $msg = $prefsitem
            Msgbox(64,"Preferences:","OS:" & @OSVersion)
        Case $msg = $aboutitem
            Msgbox(64,"about:","AutoIt3-Tray-sample")
        Case $msg = $exititem
            ExitLoop
    EndSelect
WEnd

; Далее будет моя программа

Отправлено: 13:50, 16-05-2009

 

Аватара для Yashied

Старожил


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

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


Код: Выделить весь код
#Include <Constants.au3>
#NoTrayIcon

Opt("TrayMenuMode",1)   ; Default tray menu items (Script Paused/Exit) will not be shown.

$prefsitem  = TrayCreateItem("Preferences")
TrayCreateItem("")
$aboutitem  = TrayCreateItem("About")
TrayCreateItem("")
$exititem   = TrayCreateItem("Exit")

TraySetState()

While 1
    $msg = TrayGetMsg()
    Select
        Case $msg = 0
            ContinueLoop
        Case $msg = $prefsitem
            Msgbox(64,"Preferences:","OS:" & @OSVersion)
        Case $msg = $aboutitem
            Msgbox(64,"about:","AutoIt3-Tray-sample")
        Case $msg = $exititem
            ExitLoop
    EndSelect

; Здесь будет твоя программа

WEnd

Отправлено: 14:54, 16-05-2009 | #2



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

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


Аватара для Creat0R

Must AutoIt


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

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


Цитата sashadeg:
Что здесь нужно доработать, чтобы и программа продолжалась, и меню исправно работало? »
У вас неверное представление о том как работает GUI и циклы связанные с ним.
Когда мы используем TrayGetMsg в цикле, то обрабатываются сообщения от трея, а если нужно ещё что-то проверять (например сообщения GUI), то добавляем ещё один Switch GUIGetMsg(). А что значит “чтобы и программа продолжалась”? она и продолжается, в цикле, всё будет выполняться либо в этом самом цикле (см. пример Yashied), либо по событию, больше ничего нет (за исключением разных таймеров и callbck).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:43, 16-05-2009 | #3


Новый участник


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

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


Код: Выделить весь код
#include "WinGetTitleEx.au3"
#include <Constants.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>

Opt("TrayOnEventMode", 1)
Opt("GUIOnEventMode", 1)
Opt("SendCapslockMode", 0)
Opt("TrayMenuMode", 1 + 2)
$prefsitem = TrayCreateItem("Preferences")
TrayCreateItem("")
$aboutitem = TrayCreateItem(("About"))
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TrayItemSetOnEvent($prefsitem, "Preferences")
TrayItemSetOnEvent($aboutitem, "About")
TrayItemSetOnEvent($exititem, "Exit")

While 1
;~  Vasha programa
WEnd

Func Preferences()
     Msgbox(64,"Preferences:","OS:" & @OSVersion)

EndFunc  
Func About()
    Msgbox(64,"about:","AutoIt3-Tray-sample")

EndFunc  
Func Exit1()
    Exit
EndFunc   ;==>Exit1
А я так бы сделал

Последний раз редактировалось shyra1976, 20-05-2009 в 15:24.


Отправлено: 11:56, 20-05-2009 | #4


Аватара для Creat0R

Must AutoIt


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

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


shyra1976,
Цитата shyra1976:
A ia tak bi sdelal
Предупреждение за нарушение общих правил форума (2.3):

Цитата:
....
2.
....
3. Язык общения на Конференции - русский.
  • Если Вы не можете писать кириллицей, используйте виртуальную клавиатуру, которая доступна в каждой теме справа от формы ответа. Исключения составляют названия торговых марок, моделей устройств, программных продуктов, а также иностранные аббревиатуры. Они должны воспроизводиться только латинскими буквами.
....

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:57, 20-05-2009 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - [решено] в системном трее постоянно изменяется порядок загрузки приложений при запуске системы Zusul777 Microsoft Windows 2000/XP 2 27-12-2009 14:12
[решено] Убрать функцию "Script Paused" иконки в системном трее... sashadeg AutoIt 1 21-03-2009 11:15
Система - Исчезают значки в системном трее Zod100 Хочу все знать 6 04-11-2008 09:28
Интерфейс - про иконку в системном трее WChek Microsoft Windows 2000/XP 9 05-12-2007 11:42
[решено] Формирование списка программ в системном трее koles Microsoft Windows 2000/XP 1 02-12-2006 22:47




 
Переход