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

  • Май 20, 2012, 12:44:13 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: [Элементы GUI] Не закрывается Gui  (Прочитано 972 раз)

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

opoiknet [?]

  • Новичок
  • *
  • Репутация: 0
  • Offline Offline
  • Сообщений: 2
  • Версия AutoIt: AutoIt3
    • Награды
После запуска скрипта не срабатывает кнопка "закрыть"
нужен мониторинг нескольких IP
если поставить exitloop то опрос IP прекращается.


Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 625, 443, 192, 124)
GUISetState(@SW_SHOW)


While 1

$var1 = Ping("192.168.0.1",500)

If $var1=1 Then
    GUICtrlCreateLabel("ok", 24, 32, 108, 17)

Else
    GUICtrlCreateLabel("no", 24, 32, 108, 17)

EndIf



    $var2 = Ping("192.168.0.11",500)
If $var2=1 Then
    GUICtrlCreateLabel("ok", 24, 62, 108, 17)

Else
    GUICtrlCreateLabel("no", 24, 62, 108, 17)

EndIf
WEnd

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd




  Записан

aleratorio [?]

  • Осваивающий
  • **
  • Репутация: 28
  • Offline Offline
  • Сообщений: 74
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: [Элементы GUI] Не закрывается Gui
« Ответ #1, Отправлен: Декабрь 17, 2010, 21:10:40 »
Конечно не будет закрываться, тут первый бесконечный цикл, и до цикла обработки сообщений скрипт не доходит.

Надо что то типа:
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 625, 443, 192, 124)
GUISetState(@SW_SHOW)

AdlibRegister("BeginPing", 1000)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func BeginPing()
    $var1 = Ping("192.168.0.1",500)

    If $var1=1 Then
        GUICtrlCreateLabel("ok", 24, 32, 108, 17)
    Else
        GUICtrlCreateLabel("no", 24, 32, 108, 17)
    EndIf

    $var2 = Ping("192.168.0.11",500)
    If $var2=1 Then
        GUICtrlCreateLabel("ok", 24, 62, 108, 17)
    Else
        GUICtrlCreateLabel("no", 24, 62, 108, 17)
    EndIf
EndFunc
 

Либо (без задержки в секунду):
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 625, 443, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "ExitScript")
GUISetState(@SW_SHOW)

While 1
    $var1 = Ping("192.168.0.1",500)

    If $var1=1 Then
        GUICtrlCreateLabel("ok", 24, 32, 108, 17)
    Else
        GUICtrlCreateLabel("no", 24, 32, 108, 17)
    EndIf

    $var2 = Ping("192.168.0.11",500)
    If $var2=1 Then
        GUICtrlCreateLabel("ok", 24, 62, 108, 17)
    Else
        GUICtrlCreateLabel("no", 24, 62, 108, 17)
    EndIf
WEnd

Func ExitScript()
    Exit
EndFunc
 




  Записан

dwerf [?]

  • AutoIt Гуру
  • *****
  • Репутация: 189
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 455
  • Версия AutoIt: 3.3.6.1
  • Использует ArchLinux
    • Награды
Re: [Элементы GUI] Не закрывается Gui
« Ответ #2, Отправлен: Декабрь 17, 2010, 21:20:53 »
Работа над ошибками #2.

Вместо того чтобы создавать несколько элементов интерфейса на одном месте (GUICtrlCreateLabel выполняется много раз), нужно создавать один элемент и менять данные которые он показывает (GUICtrlSetData).

Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 625, 443, 192, 124)
GUISetState(@SW_SHOW)

$Label1 = GUICtrlCreateLabel("", 24, 32, 108, 17)
$Label2 = GUICtrlCreateLabel("", 24, 62, 108, 17)

AdlibRegister("BeginPing", 1000)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func BeginPing()
    $var1 = Ping("192.168.0.1",500)

    If $var1=1 Then
        GUICtrlSetData($Label1, "ok")
    Else
        GUICtrlSetData($Label1, "no")
    EndIf

    $var2 = Ping("192.168.0.11",500)
    If $var2=1 Then
        GUICtrlSetData($Label2, "ok")
    Else
        GUICtrlSetData($Label2, "no")
    EndIf
EndFunc




  Записан
00110110001000001101000011010011001

opoiknet [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 2
  • Версия AutoIt: AutoIt3
    • Награды
Re: [Элементы GUI] Не закрывается Gui
« Ответ #3, Отправлен: Декабрь 20, 2010, 09:38:11 »
Спасибо большое. Все заработало. :IL_AutoIt_1:




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
FileClose. Не закрывается дескриптор файла
AutoIt для новичков
Suppir 2 886 Последний ответ Ноябрь 16, 2009, 13:58:03
от Suppir
[Элементы GUI] Окно закрывается спустя какое-то время
GUI - Графический интерфейс пользователя
Zuzik 4 1004 Последний ответ Апрель 29, 2010, 18:49:14
от Zuzik
[Элементы GUI] элементы GUI ReadOnly
AutoIt для новичков
andreitrane 1 583 Последний ответ Апрель 22, 2011, 09:35:47
от madmasles
почему не закрывается окно WordPad
AutoIt для новичков
fixik 13 853 Последний ответ Июль 18, 2011, 00:27:47
от fixik
[Элементы GUI] Удалить все элементы в combobox
GUI - Графический интерфейс пользователя
erlik 4 709 Последний ответ Август 26, 2011, 00:24:48
от erlik
[Элементы GUI] [Элементы GUI] gui + png + компиляция
AutoIt для новичков
damien2008 3 723 Последний ответ Август 31, 2011, 13:11:43
от axlwor
Почему иногда при нажатии кнопки ESC при раскрытом gui-окне, скрипт закрывается?
AutoIt для новичков
agikon 2 373 Последний ответ Сентябрь 30, 2011, 00:56:20
от agikon
[Элементы GUI] Как перебрать все элементы GUI?
GUI - Графический интерфейс пользователя
Acceleraptor 8 433 Последний ответ Март 10, 2012, 04:10:33
от Kaster
[Элементы GUI] Движущиеся элементы (ака The Bat!)
Стол заказов
---Zak--- 0 164 Последний ответ Март 12, 2012, 15:44:51
от ---Zak---
Из скрипта не закрывается окно редактора SciTE
AutoIt для новичков
vitaliy4us 2 99 Последний ответ Май 04, 2012, 15:15:28
от asdf8


Реклама

* Последние сообщения на форуме
post Re: [Мышь, клавиатура] Привязка клика по координатам к клавише
[Стол заказов] megatoxx Сегодня в 12:41:37
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:35:14
post Re: Защита исходного кода программы
[AutoIt для новичков] Ganibal95 Сегодня в 12:34:22
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:33:22
post Re: Защита исходного кода программы
[AutoIt для новичков] Ganibal95 Сегодня в 12:21:05
post Re: Проблема с циклами While
[AutoIt для новичков] Yashied Сегодня в 12:14:25
post Сглаживание рывков при передачи новых координат игрока по TCP/IP
[Общение] Ganibal95 Сегодня в 12:10:37
post Перенесено: Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] Yashied Сегодня в 12:09:28
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:09:05
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15

* Пользователи онлайн
  • Dot Гостей: 103
  • Dot Скрыт: 2
  • Dot Пользователей: 29
  • Dot Пользователи Online: