PDA

Показать полную графическую версию : [решено] Не получается закрытие окна InputBox и прерывание работы скрипта


sashadeg
24-02-2009, 14:27
Не получается закрытие окна 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
Не получается закрытие окна 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
Такое пока невозможно проделать в InputBox »
Если использовать API хук (http://www.autoitscript.com/forum/index.php?showtopic=74251) то возможно. Также касается и 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




© OSzone.net 2001-2012