|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Конфликт опции "GUIOnEventMode" и функции "GUIGetMsg" |
|
|
[решено] Конфликт опции "GUIOnEventMode" и функции "GUIGetMsg"
|
|
Новый участник Сообщения: 13 |
Здравствуйте!
Я в 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 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить 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
|
|
------- Отправлено: 18:49, 28-07-2014 | #2 |
|
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Creat0R, спасибо большое !!!!
|
|
Отправлено: 19:35, 28-07-2014 | #3 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| [решено] При открытие "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 | |
|