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

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

Ответить
Настройки темы
[решено] Как в функцию вписать?

Аватара для JaguarSP

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


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

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


что нужно сделать чтобы в функции проверялось нажата ли кнопка свертывания в трее, уже все передумал =( вот func:
Код: Выделить весь код
Func _Timer()
	$iOld_Opt = Opt("GUIOnEventMode", 1)
    GUICtrlSetOnEvent($cancel, "_Main_Events")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Main_Events")

    For $Start = $pas To 0 Step -1		
		Select				
           Case $Start >= 7
               GUICtrlSetColor($Label1, 0x00FF00)
               GUICtrlSetData($Label1, $Start)
            Case $Start > 3
                GUICtrlSetColor($Label1, 0xFF8000)
                GUICtrlSetData($Label1, $Start)
            Case $Start >= 0
                GUICtrlSetColor($Label1, 0xFF0000)
                GUICtrlSetData($Label1, $Start)
        EndSelect
        If $iStop Then
            MsgBox(64, 'Atention', 'Таймер остановлен! Выход из программы.')
            $iStop = 1
            ExitLoop
        EndIf
		Sleep(1000)
    Next
    Return
EndFunc
И вот скрипт сварачивания в трее:
Код: Выделить весь код
#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

Отправлено: 12:08, 23-04-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата JaguarSP:
уже все передумал »
Тема решена?

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

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

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:02, 23-04-2010 | #2



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

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


Аватара для JaguarSP

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


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

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


эм ну это же я все передумал а есть еще умные люди ;-) передумал в том плане что не могу найти решение...

Отправлено: 14:34, 23-04-2010 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата JaguarSP:
это же я все передумал »
Мне показалось что там написано «придумал»

А что если при свёртываний присвоить также переменной $iStop = True?

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

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

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:41, 23-04-2010 | #4


Аватара для JaguarSP

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


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

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


Цитата Creat0R:
А что если при свёртываний присвоить также переменной $iStop = True? »
хм не понял... покажи примером пожалуйста :-)

Отправлено: 15:10, 23-04-2010 | #5


Аватара для Creat0R

Must AutoIt


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

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


Цитата JaguarSP:
покажи примером пожалуйста »
Код: Выделить весь код
Func _RestoreFromTray_Proc()
	$iStop = 1
	
    If BitAND(WinGetState($hGUI), 2) = 2 Then Return
    TraySetState(2)
    GUISetState(@SW_SHOW)
    GUISetState(@SW_RESTORE)
EndFunc
и у тебя ошибка в функции таймера, там после MsgBox нужно ставить $iStop = 0 а не 1 иначе в следующий раз не сработает.

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

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

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


Отправлено: 15:16, 23-04-2010 | #6


Аватара для JaguarSP

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


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

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


Цитата Creat0R:
ставить $iStop = 0 а не 1 »
неее так задуманно это вот для этого:
Код: Выделить весь код
        Case $Shutdown
            _Timer()
			If $istop=1 Then Exit
			$msg=MsgBox(262145,"Atention", "Ваш компъютер будет через 20 секунд", 15) 
                         If $msg=1  Then 
                            ;Sleep(20000)
							Shutdown(1)
если не сделать так то другие месаджи пойдут...

Последний раз редактировалось JaguarSP, 23-04-2010 в 20:41. Причина: =)=)


Отправлено: 15:34, 23-04-2010 | #7


Аватара для Creat0R

Must AutoIt


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

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


Цитата JaguarSP:
так задуманно »
Ну тогда оно вообще не нужно, т.к переменной $iStop присваивается значение 1 (True) при нажатии на кнопку, ну или вообще вместо ExitLoop сразу поставить Exit, т.к всё ровно по завершению функции происходит выход (при условий что она остановлена конечно).

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

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

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


Отправлено: 00:06, 24-04-2010 | #8


Аватара для JaguarSP

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


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

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


ну по идеи то да... я когда все написал там было не оч и переделал чтобы было хорошо

Отправлено: 01:17, 24-04-2010 | #9


Аватара для Creat0R

Must AutoIt


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

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


JaguarSP, ну а теперь то тема решена?

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

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

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


Отправлено: 01:29, 24-04-2010 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Как передать функцию в качестве аргумента другой функции? crashtuak Программирование и базы данных 6 17-09-2012 12:51
C/C++ - [решено] Как в С вызвать функцию из Delphi библиотеки? mingw Программирование и базы данных 6 06-07-2009 10:11
Разное - как вызвать функцию hhh8486 Программирование и базы данных 2 29-03-2008 13:17
Panasonic GD 55 как активировать функцию разблокировки SIM xkspy Мобильные ОС, смартфоны и планшеты 2 26-03-2005 22:20
*Юный техник* | Как добавить функцию? DIMAIN Программирование и базы данных 9 15-02-2005 00:22




 
Переход