Автор Тема: Сворачивание программыв трей после нажатия кнопки  (Прочитано 4317 раз)

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

Оффлайн Lum [?]

  • Новичок
  • *
  • Сообщений: 61
  • Репутация: 3
    • Награды
Есть программа. На форме программы 1 кнопка, после которой запускается основной скрипт. Как сделать так, чтобы после нажатия этой кнопки программа сворачивалась в трей и в нем висел только значок самой программы. Завершение работы программы должно осуществляться посредством нажатия правой кнопкой мыши на значок в трее и выборе в меню "Выход". Просмотрела несколько тем по трею, но так и не смогла разобраться. :wacko:
Код: AutoIt [Выделить]
#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
 


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


Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2316
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Lum
Попробуйте так:
Код: AutoIt [Выделить]
#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

« Последнее редактирование: Май 15, 2010, 15:05:18 от madmasles »

Оффлайн Lum [?]

  • Новичок
  • *
  • Сообщений: 61

  • Автор темы
  • Репутация: 3
    • Награды
Да, работает) Спасибо)

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2316
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Lum
у меня в коде был лишний
Код: AutoIt [Выделить]
Case $exititem
            Exit

после строки
Код: AutoIt [Выделить]
; Ваш код

Я код поправил.

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

Re: Сворачивание программыв трей после нажатия кнопки
« Ответ #3 Отправлен: Май 15, 2010, 15:07:45 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
4284 Просмотров
Последний ответ Октябрь 24, 2011, 01:08:59
от agikon
13 Ответов
6324 Просмотров
Последний ответ Октябрь 28, 2011, 01:34:52
от jilexandr
1 Ответов
1963 Просмотров
Последний ответ Май 25, 2013, 14:44:03
от andriy111
1 Ответов
1502 Просмотров
Последний ответ Январь 19, 2014, 22:10:35
от madmasles
6 Ответов
2536 Просмотров
Последний ответ Январь 20, 2014, 15:32:19
от Fallen
4 Ответов
2213 Просмотров
Последний ответ Апрель 27, 2014, 20:48:50
от alex33
7 Ответов
2038 Просмотров
Последний ответ Август 26, 2014, 19:13:01
от maxim_porsche
6 Ответов
722 Просмотров
Последний ответ Август 28, 2017, 20:36:38
от Visors
1 Ответов
331 Просмотров
Последний ответ Август 31, 2017, 16:55:21
от InnI
3 Ответов
301 Просмотров
Последний ответ Январь 30, 2018, 00:22:46
от yl3d