Что нового

Cравнить данные, введенные в Input, c константой (создать код разблокировки).

Rimm

Новичок
Сообщения
30
Репутация
0
Запускаем Окно.au3, затем Блокировка.au3. Второй скрипт "обнаруживает" сообщение и создает окно с Input и кнопкой разблокировки. В Input необходимо ввести код разблокировки, для того чтобы окно исчезло, но после нажатия кнопки ничего не происходит. В чем ошибка?
Окно.au3
Код:
MsgBox (16, "Окно", "Пример.")


Блокировка.au3
Код:
#Include <WindowsConstants.au3>
#include <EditConstants.au3>

_Blockscreen()
Func _Blockscreen()
While 1
    If WinExists ("Окно", "Пример.") = 1 Then
		    WinClose ("Окно")
			Global $GUIblock = GUICreate ("", 500, 500, -1, -1, $WS_BORDER + $WS_POPUP) ;$WS_EX_TOPMOST
			Global $Inputblock = GUICtrlCreateInput ("", 50, 230, 400, 30, $ES_CENTER + $ES_PASSWORD + $ES_NUMBER)
			GUICtrlSetFont (-1, 14, 600, 0, 'Arial')
			Global $blockout = GUICtrlCreateButton ("Разблокировать", 50, 270, 400, 30)
			GUICtrlSetOnEvent($blockout, "_Blockout")
			GUICtrlSetFont (-1, 13, 500, 0, 'Arial')
			GUISetState ()
	EndIf
WEnd
EndFunc

Func _Blockout()
	Const $password = '123'
	If StringCompare ($Inputblock, $password) = 0 Then
		;MsgBox (16, "ыва", "ыва")
		GUIDelete ($GUIblock)
	Else
		GUICtrlSetData ($Inputblock, "")
	EndIf
EndFunc
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Код:
#Include <WindowsConstants.au3>
#include <EditConstants.au3>

Opt('GUIOnEventMode', 1)

Global $Inputblock, $GUIblock

_Blockscreen()

Func _Blockscreen()
    While 1
        If WinExists("Окно") Then
            WinClose("Окно")
            $GUIblock = GUICreate ("", 500, 500, -1, -1, $WS_BORDER + $WS_POPUP) ;$WS_EX_TOPMOST
            $Inputblock = GUICtrlCreateInput ("", 50, 230, 400, 30, $ES_CENTER + $ES_PASSWORD + $ES_NUMBER)
            GUICtrlSetFont (-1, 14, 600, 0, 'Arial')
            $blockout = GUICtrlCreateButton ("Разблокировать", 50, 270, 400, 30)
            GUICtrlSetOnEvent($blockout, "_Blockout")
            GUICtrlSetFont (-1, 13, 500, 0, 'Arial')
            GUISetState ()
        EndIf
    WEnd
EndFunc

Func _Blockout()
    If GUICtrlRead($Inputblock) = 123 Then
        GUIDelete ($GUIblock)
    Else
        GUICtrlSetData ($Inputblock, "")
    EndIf
EndFunc
 
Верх