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

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

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

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


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

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


Изменения
Автор: replerk1334
Дата: 28-07-2014
Вложения
Тип файла: rar TEST.rar
(787 байт, 4 просмотров)
Здравствуйте!
Я в autoit новичок поэтому знаю еще не много и во время написания своего скрипта у меня возникла проблема с которой я обращаюсь ко все гуру Autoit и надеюсь на понимание и помощь.
Проблема заключается в том что не работают кнопки в GUI , я выяснил причину и оказалось что это явление происходит когда включена опция "GUIOnEventMode" если же она выключена все работает кроме зависимых от этой опции функций .
Объясните мне как с этим разобраться чтобы работали и опция и функция или поправьте скрипт .
Также я добавил файл скрипта к теме (если нужно).
Версия Autoit 3.3.12.
Заранее спасибо!
Код: Выделить весь код
Opt('GUIOnEventMode',1);Если режим GUIOnEventMode выключен (значение "0") то функция GUIGetMsg работает , а когда режим GUIOnEventMode включен (значение "1") кнопки не работают.
Opt('MustDeclareVars',1)
Opt('TrayIconDebug',1)
Opt('TrayIconHide',0)

#include <GUIConstantsEx.au3>

Global 	 $REStart, $but1,$but2,$GUI

$GUI=GUICreate('Тест', 459, 240)
$but1 = GUICtrlCreateButton("Скрыть окно ", 26, 155, 172, 25)
$but2 = GUICtrlCreateButton("Выход", 26, 195, 172, 25)
$REStart = GUICtrlCreateButton('Перезапуск', 20, 60, 100, 25)
GUICtrlSetOnEvent($REStart, '_ReStart')
GUISetState()

While 1
	 Switch GUIGetMsg()
        Case $but1
            GUISetState(@SW_HIDE,$GUI)
		 Case $but2
			 Exit
		 Case $GUI_EVENT_CLOSE
			 Exit
    EndSwitch
WEnd

Func _ReStart()
	Local $sAutoIt_File = @TempDir & "\~Au3_ScriptRestart_TempFile.au3"
    Local $sRunLine, $sScript_Content, $hFile

    $sRunLine = @ScriptFullPath
    If Not @Compiled Then $sRunLine = @AutoItExe & ' /AutoIt3ExecuteScript ""' & $sRunLine & '""'
    If $CmdLine[0] > 0 Then $sRunLine &= ' ' & $CmdLineRaw

    $sScript_Content &= '#NoTrayIcon' & @CRLF
    $sScript_Content &= 'While ProcessExists(' & @AutoItPID & ')' & @CRLF
    $sScript_Content &= '   Sleep(10)' & @CRLF
    $sScript_Content &= 'WEnd' & @CRLF
    $sScript_Content &= 'Run("' & $sRunLine & '")' & @CRLF
    $sScript_Content &= 'FileDelete(@ScriptFullPath)' & @CRLF

    $hFile = FileOpen($sAutoIt_File, 2)
    FileWrite($hFile, $sScript_Content)
    FileClose($hFile)

	Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sAutoIt_File & '"', @ScriptDir, @SW_HIDE)
    Sleep(1000)
    Exit
EndFunc

Отправлено: 17:15, 28-07-2014

 

Аватара для Creat0R

Must AutoIt


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

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


GUIOnEventMode несовместим с GUIGetMsg.

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

Opt('GUIOnEventMode', 1)
Opt('MustDeclareVars', 1)
Opt('TrayIconDebug', 1)
Opt('TrayIconHide', 0)

Global $REStart, $but1, $but2, $GUI

$GUI = GUICreate('Тест', 459, 240)

$but1 = GUICtrlCreateButton("Скрыть окно ", 26, 155, 172, 25)
$but2 = GUICtrlCreateButton("Выход", 26, 195, 172, 25)
$REStart = GUICtrlCreateButton('Перезапуск', 20, 60, 100, 25)

GUISetOnEvent($GUI_EVENT_CLOSE, '_Events')
GUICtrlSetOnEvent($but1, '_Events')
GUICtrlSetOnEvent($but2, '_Events')
GUICtrlSetOnEvent($REStart, '_Events')

GUISetState()

While 1
    Sleep(10)
WEnd

Func _Events()
    Switch @GUI_CtrlId
        Case $GUI_EVENT_CLOSE, $but2
            Exit
        Case $but1
            GUISetState(@SW_HIDE, $GUI)
        Case $REStart
            _ReStart()
    EndSwitch
EndFunc

Func _ReStart()
    Local $sAutoIt_File = @TempDir & "\~Au3_ScriptRestart_TempFile.au3"
    Local $sRunLine, $sScript_Content, $hFile

    $sRunLine = @ScriptFullPath
    If Not @Compiled Then $sRunLine = @AutoItExe & ' /AutoIt3ExecuteScript ""' & $sRunLine & '""'
    If $CmdLine[0] > 0 Then $sRunLine &= ' ' & $CmdLineRaw

    $sScript_Content &= '#NoTrayIcon' & @CRLF
    $sScript_Content &= 'While ProcessExists(' & @AutoItPID & ')' & @CRLF
    $sScript_Content &= '   Sleep(10)' & @CRLF
    $sScript_Content &= 'WEnd' & @CRLF
    $sScript_Content &= 'Run("' & $sRunLine & '")' & @CRLF
    $sScript_Content &= 'FileDelete(@ScriptFullPath)' & @CRLF

    $hFile = FileOpen($sAutoIt_File, 2)
    FileWrite($hFile, $sScript_Content)
    FileClose($hFile)

    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sAutoIt_File & '"', @ScriptDir, @SW_HIDE)
    Sleep(1000)
    Exit
EndFunc

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

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

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

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

Отправлено: 18:49, 28-07-2014 | #2



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

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


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


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

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


Creat0R, спасибо большое !!!!

Отправлено: 19:35, 28-07-2014 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] При открытие "vk.com", "выкидывает" на страницу для "разморозки страницы" sovenok Лечение систем от вредоносных программ 17 21-11-2013 04:09
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках Alex.sys Общий по Linux 5 02-04-2009 11:13
Не получается найти все выпуски "Хакер"+"спец"+"железо" verdix Хочу все знать 5 29-11-2008 15:19
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход