Автор Тема: Сворачивание окна в область уведомлений  (Прочитано 4687 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2696
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Простой способ сворачивания окна в область уведомлений (Tray).


Код: AutoIt [Выделить]
#NoTrayIcon

#Include <Constants.au3>
#Include <GUIConstantsEx.au3>

Opt('TrayMenuMode', 1)

$TrayRestoreItem = TrayCreateItem('Restore')
TrayItemSetState(-1, $TRAY_DEFAULT)
TrayCreateItem('')
$TrayExitItem = TrayCreateItem('Exit')
TraySetClick(8)

$Form = GUICreate('My GUI')
GUISetState()

While 1
    $TrayMsg = TrayGetMsg()
    Switch $TrayMsg
        Case $TrayRestoreItem
            GUISetState(@SW_SHOW, $Form)
            GUISetState(@SW_RESTORE, $Form)
            TraySetState(2)
        Case $TrayExitItem
            ExitLoop
    EndSwitch
    $GUIMsg = GUIGetMsg()
    Switch $GUIMsg
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $GUI_EVENT_MINIMIZE
            GUISetState(@SW_HIDE, $Form)
            TraySetState(1)
    EndSwitch
WEnd



Думай, прежде чем говорить.

Русское сообщество AutoIt

Сворачивание окна в область уведомлений
« Отправлен: Октябрь 11, 2009, 15:53:33 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7830
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Сворачивание окна в область уведомлений
« Ответ #1, Отправлен: Октябрь 12, 2009, 01:31:02 »
Этот пример немного зависает при восстановлении с трея (кнопка на панели задач не сразу появляется). А всё из за того, что не учитывает золотое правило касающиеся созданию и активации окон: Сохранять обратный порядок (создания, активации, минимизирования, и т.п.) :)

Вот вариация на этот пример:

Код: AutoIt [Выделить]
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <Constants.au3>
;

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

$hGUI = GUICreate("Minimize to Tray Example", 300, 200)

$RestoreItem = TrayCreateItem("Restore")
TrayItemSetOnEvent(-1, "_RestoreFromTray_Proc")

TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "_RestoreFromTray_Proc")
TraySetClick(16)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $GUI_EVENT_MINIMIZE
            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



Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Русское сообщество AutoIt

Re: Сворачивание окна в область уведомлений
« Ответ #1 Отправлен: Октябрь 12, 2009, 01:31:02 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
7 Ответов
3994 Просмотров
Последний ответ Октябрь 05, 2011, 09:30:10
от Driver
2 Ответов
2069 Просмотров
Последний ответ Август 31, 2013, 15:24:02
от MnM
0 Ответов
866 Просмотров
Последний ответ Сентябрь 04, 2014, 13:01:20
от madmasles
3 Ответов
1690 Просмотров
Последний ответ Сентябрь 04, 2014, 15:49:15
от oesoes
7 Ответов
2487 Просмотров
Последний ответ Сентябрь 17, 2014, 14:35:05
от shas.1984
9 Ответов
3809 Просмотров
Последний ответ Февраль 19, 2016, 19:02:23
от weweWe45s
1 Ответов
594 Просмотров
Последний ответ Апрель 21, 2017, 18:52:34
от musicstashall
6 Ответов
927 Просмотров
Последний ответ Август 28, 2017, 20:36:38
от Visors
4 Ответов
804 Просмотров
Последний ответ Октябрь 03, 2017, 20:08:03
от cerber412
3 Ответов
472 Просмотров
Последний ответ Январь 30, 2018, 00:22:46
от yl3d