Что нового

Сворачивание окна именно в область уведомлений

shas.1984

Новичок
Сообщения
18
Репутация
0
И снова здравствуйте :smile:

Постараюсь выразиться как можно яснее. Пошурстив на форуме нашел несколько похожих тем, но не то же самое все же.
Имеется программка, которая сразу после запуска выводит окошко с парой ChekBox-ов, затем начинает свою работу, а по мере того, как выполнит задачу - выводит сообщение на экран.
Вопрос:
Можно ли с помощью autoit сделать так, чтобы окно программы с CheckBox-ами сворачивалось в область уведомлений, я имею в виду именно место в трее рядом с часиками и иконкой языка, а не в сам трей, где показываются все запущенные программы, а в самом трее не отображалось вообще??

Спасибо!
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
shas.1984 [?]
где показываются все запущенные программы
Это называется "панель задач".

чтобы окно программы с CheckBox-ами сворачивалось в область уведомлений
Код:
GUISetState(@SW_HIDE) ; для своего окна
WinSetState("title", "", @SW_HIDE) ; для любого окна
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
CGmJkU9yzYkCDVfPgYg-7irJEuLOTP_H8FF0j4Fs_ZpuQ2z_4gF9EWc54Ez3sFykpD2GWjXrcsageCvHRPoLfA==

Это не то. Он про зону, которая окрашена в красный, как я понял. Это называется ребар. По нему очень мало инфы даже не том же МСДНе, не говоря уже о нерабочем примере. Вообщем, это зона, в которой можно создавать свои тулбары, а на тулбарах кнопки. То есть, это не просто кнопки или иконки, это целые тулбары. Найти внятного и (о боже) _рабочего_ примера я так и не смог, даже на С++ не говоря уже о AutoIT. В принципе понятно, что нужно создать свой тулбар средствами API, на нем дочернее окно - кнопку (но не простую, а со своими, определенными стилями) и в качестве родительского окна этому новому тулбару задать дескриптор ребара. Но вот на практике... хмм... самому интересно... ищу примеры сижу. Даже уже пофиг, на каком языке.
 
Автор
S

shas.1984

Новичок
Сообщения
18
Репутация
0
oesoes, вы поняли меня абсолютно правильно! :smile:
InnI, спасибо за ликбез :smile:


Добавлено:
Сообщение автоматически объединено:

С учетом предложенных выше ремарок, перефразирую вопрос так:
Можно ли с помощью Autoit сделать так, чтобы окно с ChekBox-ами сворачивалось не в Панель задач, а в область уведомлений (ребар), а в панели задач не отображалось вовсе.

Поясню точнее, что подразумеваю под областью уведомлений. Если по панели задач кликнуть правой кнопкой мыши и выбрать "Свойства" - откроется окно "Свойства панели задач и меню "Пуск", так вот там есть Область уведомлений и кнопочка "Настроить". Если нажать на нее, все сразу станет ясно.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
shas.1984 [?]
там есть Область уведомлений и кнопочка "Настроить"
Это и есть трей. Значки в трее со временем скрываются автоматически. А "ребар", про который пишет oesoes, создаётся так: правой кнопкой мыши по панели задач - пункт меню "Панели" - "Создать панель инструментов" и выбрать папку.

Пример "сворачивания" в трей
Код:
$gui = GUICreate("Свернуть в трей")
GUICtrlCreateCheckbox("какой-то текст 1", 10, 10)
GUICtrlCreateCheckbox("какой-то текст 2", 10, 30)
$btn = GUICtrlCreateButton("Свернуть в трей на 3 секунды", 10, 70)
GUISetState()
Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $btn
      GUISetState(@SW_HIDE)
      Sleep(3000)
      GUISetState(@SW_SHOW)
  EndSwitch
Until 0
 
Автор
S

shas.1984

Новичок
Сообщения
18
Репутация
0
InnI, спасибо за пример!
Для меня он не нов. В той или иной модификации я его использовал ранее, но он не совсем подходит мне.
Задача стоит сделать так, чтобы окно сворачивалось подобно окну ICQ клиента (например Miranda) при его сворачивании (или закрытии) в иконку рядом с часиками, а при нажатии на эту иконку - снова показывалось на экране.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
shas.1984 [?]
Задача стоит сделать так
Вот сразу нельзя было это написать?
Код:
#include <GuiConstantsEx.au3>
#include <TrayConstants.au3>
Opt("TrayMenuMode", 1)

$gui = GUICreate("Свернуть в трей")
$min = GUICtrlCreateCheckbox("сворачивать в трей", 10, 10)
$close = GUICtrlCreateCheckbox("закрывать в трей", 10, 30)
$btn = GUICtrlCreateButton("Свернуть в трей на 3 секунды", 10, 70)
$btnExit = GUICtrlCreateButton("ВЫХОД", 10, 110)
GUISetState()
Do
  Switch GUIGetMsg()
    Case $GUI_EVENT_MINIMIZE
      If GUICtrlRead($min) = 1 Then GUISetState(@SW_HIDE)
    Case $GUI_EVENT_CLOSE
      If GUICtrlRead($close) = 1 Then
        GUISetState(@SW_HIDE)
      Else
        Exit
      EndIf
    Case $btn
      GUISetState(@SW_HIDE)
      Sleep(3000)
      GUISetState(@SW_SHOW)
    Case $btnExit
      Exit
  EndSwitch
  Switch TrayGetMsg()
    Case $TRAY_EVENT_PRIMARYDOWN
      GUISetState(@SW_SHOWNORMAL)
  EndSwitch
Until 0
 
Верх