Что нового

Действия кнопок MsgBox

Сообщения
95
Репутация
-1
Доброе время суток. Взял постой скрипт из справки и появился вопрос.

Код:
#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Assign a Local variable the search handle of all files in the current directory.
    Local $hSearch = FileFindFirstFile("*.*")

    ; Check if the search was successful, if not display a message and return False.
    If $hSearch = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Ошибка: Ни один файл/каталог не соответствует шаблону поиска.")
        Return False
    EndIf

    ; Assign a Local variable the empty string which will contain the files names found.
    Local $sFileName = "", $iResult = 0

    While 1
        $sFileName = FileFindNextFile($hSearch)
        ; If there is no more file matching the search.
        If @error Then ExitLoop

        ; Display the file name.
        $iResult = MsgBox(BitOR($MB_SYSTEMMODAL, $MB_OKCANCEL), "", "File: " & $sFileName)
        If $iResult <> $IDOK Then ExitLoop ; If the user clicks on the cancel/close button.
    WEnd

    ; Close the search handle.
    FileClose($hSearch)
EndFunc   ;==>Example

Как сделать, чтобы при нажатии кнопки ОК срабатывала функция RunWait и после окончания функции RunWait скрипт продолжил поиск, а при нажатии на кнопку ОТМЕНА скрипт пропускал функцию RunWait и продолжил поиск.
 
Последнее редактирование:

IMStrelcov

CTPEJIbLLOB
Сообщения
258
Репутация
66
Код:
;Параметр указывает на тип окна сообщения и возможные комбинации отображаемых кнопок
$iFlags = 1+32;1=отобразить кнопки "OK" и "ОТМЕНА" и 32 = знак вопроса

If MsgBox($iFlags, 'Заголовок', 'Текст в окне.') = 1 Then
   $iFlags = 64;знак Информация
   MsgBox($iFlags, 'Информация', 'Нажата кнопка "OK".')
Else
   $iFlags = 48;знак Предупреждение
   MsgBox($iFlags, 'Предупреждение', 'Нажата кнопка "ОТМЕНА".')
EndIf
 
Автор
Xabib2302
Сообщения
95
Репутация
-1
Скорей всего я не правильно выразился.
Как сделать, чтобы при нажатии кнопки ОК срабатывала функция RunWait и после окончания функции RunWait скрипт продолжил поиск, а при нажатии на кнопку ОТМЕНА скрипт пропускал функцию RunWait и продолжил поиск.
Т.е мне надо из этой строки
Код:
If $iResult <> $IDOK Then ExitLoop ; If the user clicks on the cancel/close button.

Убрать ExitLoop и сделать так как я описал вопрос
 
Автор
Xabib2302
Сообщения
95
Репутация
-1
А как организовать если использовать константу $MB_YESNOCANCEL и на кнопку $IDYES назначить функцию RunWait, на кнопку $IDNO продолжить поиск без функции RunWait, на кнопку $IDCANCEL отменить выполнение скрипта т.е ExitLoop
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
$iResult = MsgBox(BitOR($MB_SYSTEMMODAL, $MB_YESNOCANCEL), "", "File: " & $sFileName)
If $iResult = $IDYES Then RunWait("calc.exe")
If $iResult = $IDCANCEL Then ExitLoop
 
Верх