Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Не получается закрытие окна InputBox и прерывание работы скрипта (http://forum.oszone.net/showthread.php?t=132991)

sashadeg 24-02-2009 14:27 1047437

Не получается закрытие окна InputBox и прерывание работы скрипта
 
Не получается закрытие окна InputBox и прерывание работы скрипта((( Мне нужно чтобы после нажатия на кнопку "cancel" скрипт прекратил свою работу и закрылся, а не закрылось окно и скрипт продолжил выполняться дальше

Вот пример закрытия MsgBox'a:

$answer = MsgBox(4, "1111", "2222")
If $answer = 7 Then
MsgBox(4096, "1111", "OK. Bye!")
Exit
EndIf

Всё работает как надо...

На подобии этого же создаю вот что:

$sPass = InputBox("1111", "2222")
If $sPass = 7 Then
MsgBox(4096, "1111", "OK. Bye!")
Exit
EndIf

после нажатия на canсel окно закрывается! НО скрипт продолжает свою работу(((

Что можно здесь предпринять???

P.S. А как получить InputBox с кнопкой не "OK", а "Далее" ???

beve 24-02-2009 14:39 1047453

Цитата:

Не получается закрытие окна InputBox и прерывание работы скрипта
Код:

$sPass = InputBox("1111", "2222")
If @Error = 1 Then
MsgBox(4096, "SA:MP bot", "OK. Bye!")
EndIf
Exit

Цитата:

P.S. А как получить InputBox с кнопкой не "OK", а "Далее" ???
Такое пока невозможно проделать в InputBox.

Creat0R 24-02-2009 16:13 1047549

Цитата:

Цитата beve
Такое пока невозможно проделать в InputBox »

Если использовать API хук то возможно. Также касается и MsgBox, и FileOpenDialog и т.п. функции.

Кроме прочего, можно вызвать внешний скрипт для смены надписей:

Код:

_InputBox("My InputBox", "Type sonething...", "Введите что-то", "", "Хорошо", "Не хочу")

Func _InputBox($sTitle,$sPrmpt,$sDeff="",$sPssChr="",$sOkButtTxt="",$sCnclButtTxt="",$iW=-1,$iH=-1,$iL=-1,$iT=-1,$iTO=-1,$hWnd=0)
    Local $sScript_Data = "", $sTmp_IB_ScriptFile = @TempDir & "\~Tmp_IB_Script.tmp"

    If $sOkButtTxt <> "" Or $sCnclButtTxt <> "" Then
        $sScript_Data &= 'Opt("WinWaitDelay", 0)' & @CRLF
        $sScript_Data &= 'WinWait("' & $sTitle & '")' & @CRLF

        If $sOkButtTxt <> "" Then $sScript_Data &= 'ControlSetText("' & $sTitle & '", "", "Button1", "' & $sOkButtTxt & '")' & @CRLF
        If $sCnclButtTxt <> "" Then $sScript_Data &= 'ControlSetText("' & $sTitle & '", "", "Button2", "' & $sCnclButtTxt & '")'

        FileWrite($sTmp_IB_ScriptFile, $sScript_Data)
        Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sTmp_IB_ScriptFile & '"')
    EndIf

    Local
$sRet = InputBox($sTitle, $sPrmpt, $sDeff, $sPssChr, $iW, $iH, $iL, $iT, $iT, $hWnd)
    Local $iError = @error

    FileDelete($sTmp_IB_ScriptFile)

    Return SetError($iError, 0, $sRet)
EndFunc



Время: 19:00.

Время: 19:00.
© OSzone.net 2001-