Общие вопросы по AutoIt

Аватара пользователя
bugmenotagain

Общие вопросы по AutoIt

Сообщение bugmenotagain »

После чтения основной справки появился вопрос, буду рад если вы на него подскажите ответ.

Есть в справке вот такой пример скрипта


читать дальше »




Код:

Код: Выделить всё

#include 
$mainwindow = GUICreate("Hello World", 200, 100)
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
$dummywindow = GUICreate("Dummy window for testing ", 200, 100)
GUISwitch($mainwindow)
GUISetState(@SW_SHOW)
While 1
  $msg = GUIGetMsg(1)
  Select
    Case $msg[0] = $okbutton
      MsgBox(0, "GUI Event", "You pressed OK!")
    Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $mainwindow 
      MsgBox(0, "GUI Event", "You clicked CLOSE on the main window! Exiting...")
      ExitLoop
  EndSelect
WEnd





$dummywindow = GUICreate("Dummy window for testing ", 200, 100)

создает ложное окошко? что оно делает если при его комментировании ничего не изменяется?

$msg = GUIGetMsg(1)

вызывает запрос о получении сообщений о событиях, 1 для массивов, но каких массивов если их не задано?

Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $mainwindow

как это переменую msg[0] без запроса о массивах приравняли к кнопке закрытия и запросу о массивах? и тем более что это за условие такое?

спасибо
Аватара пользователя
AZJIO

Re: Общие вопросы по AutoIt

Сообщение AZJIO »

Вы скачайте
Перевод офф. справки на Русский язык
, там по русски написано, что это тестовое окно и пример как GUISwitch делает указанное окно текущим.

Прочтите описание GUIGetMsg и станет понятным что $msg = GUIGetMsg(1) это массив.
Аватара пользователя
bugmenotagain

Re: Общие вопросы по AutoIt

Сообщение bugmenotagain »

Цитата AZJIO:



что это тестовое окно
Общие вопросы по AutoIt




там написано для чего оно и почему его не видно?
Аватара пользователя
Iska

Re: Общие вопросы по AutoIt

Сообщение Iska »

кажется разобрался с тест окном
Аватара пользователя
bugmenotagain

Re: Общие вопросы по AutoIt

Сообщение bugmenotagain »

почему такой код


читать дальше »




$asResult = StringRegExp("Это тестовый пример", '(тест)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0])

EndIf

$asResult = StringRegExp("Это тестовый пример", '(те)(ст)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0] & ",," & $asResult[1])

EndIf




выдает во 2м сообщении "те,,те", а вот такой


читать дальше »




$asResult = StringRegExp("Это тестовый пример", '(тест)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0])

EndIf

$asResult = StringRegExp("Это тестовый пример", '(те)(ст)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0] & ",," & $asResult[0])

EndIf




выдает во 2м сообщении "те,,ст"



$asResult[0] это типа возврат без массива, но разве "ст" это массив?



и почему такой код


читать дальше »




$asResult = StringRegExp("Были 18 листов оставшихся в пачке бумаги.", '([0-9]{1,3})', 0)

If @error == 0 Then

MsgBox(0, "SRE, пример 5", $asResult[0])

EndIf




выдает ошибку?

flag [опционально] = Указывает функции, хотите ли вы узнать найдено совпадение по шаблону или нет, или вы хотите получить первое совпадение с шаблоном, или вы хотите получить все совпадения с шаблоном в тексте "test".

ну вот ставлю 0, а не получаю первое совпадение, в чем косяк?
Аватара пользователя
bugmenotagain

Re: Общие вопросы по AutoIt

Сообщение bugmenotagain »

кажется разобрался с тест окном
Аватара пользователя
bugmenotagain

Re: Общие вопросы по AutoIt

Сообщение bugmenotagain »

почему такой код


читать дальше »




$asResult = StringRegExp("Это тестовый пример", '(тест)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0])

EndIf

$asResult = StringRegExp("Это тестовый пример", '(те)(ст)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0] & ",," & $asResult[1])

EndIf




выдает во 2м сообщении "те,,те", а вот такой


читать дальше »




$asResult = StringRegExp("Это тестовый пример", '(тест)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0])

EndIf

$asResult = StringRegExp("Это тестовый пример", '(те)(ст)', 1)

If @error == 0 Then

MsgBox(0, "SRE, пример 4", $asResult[0] & ",," & $asResult[0])

EndIf




выдает во 2м сообщении "те,,ст"



$asResult[0] это типа возврат без массива, но разве "ст" это массив?



и почему такой код


читать дальше »




$asResult = StringRegExp("Были 18 листов оставшихся в пачке бумаги.", '([0-9]{1,3})', 0)

If @error == 0 Then

MsgBox(0, "SRE, пример 5", $asResult[0])

EndIf




выдает ошибку?

flag [опционально] = Указывает функции, хотите ли вы узнать найдено совпадение по шаблону или нет, или вы хотите получить первое совпадение с шаблоном, или вы хотите получить все совпадения с шаблоном в тексте "test".

ну вот ставлю 0, а не получаю первое совпадение, в чем косяк?
Аватара пользователя
bugmenotagain

Re: Общие вопросы по AutoIt

Сообщение bugmenotagain »

Цитата bugmenotagain:



вот даже простую строку пишу

« скрыть

MsgBox(0, "SRE, пример 6", StringRegExp("151617 после 111", '1', 1))

вылазит пустое окошко, это как понимать?
Общие вопросы по AutoIt




Это естественно, Возвращаемое значение не массив




Цитата bugmenotagain:



в чем различие между $asResult[0] и $asResult[1], это че второе выдает просто совпадение, а второе массив?
Общие вопросы по AutoIt




$asResult[0] первый элемент массива, $asResult[1] второй и т.д.
Аватара пользователя
bugmenotagain

Re: Общие вопросы по AutoIt

Сообщение bugmenotagain »

вот даже простую строку пишу


читать дальше »


MsgBox(0, "SRE, пример 6", StringRegExp("151617 после 111", '1', 1))



вылазит пустое окошко, это как понимать?



в чем различие между $asResult[0] и $asResult[1], это че второе выдает просто совпадение, а второе массив? или как вообще? в справке не могу найти описание этой непонятной фичи
Аватара пользователя
ferget

Re: Общие вопросы по AutoIt

Сообщение ferget »

вот возвращаемый массив

$array[0] = 0 или ID-события или идентификатор элемента управления

$array[1] = Дескриптор окна события

$array[2] = Указатель элемента события (если имеется)

$array[3] = Текущая X-координата курсора мыши (относительно GUI-окна)

$array[4] = Текущая Y-координата курсора мыши (относительно GUI-окна)



msg - этот самый массив и есть
Ответить

Вернуться в «AutoIt»