PDA

Показать полную графическую версию : [решено] Как проверить Checkbox, как в Input писать только определенные символы


leprecon
21-05-2009, 18:52
1.Как проверить положение чекбокса? (стоит галочка или нет)
Например есть список серверов которые нужно пропинговать, я наставил на нужных галки, и как мне скриптом определить на каких чекбоксах стоят галки и пропинговать только их?

2.Как сделать так чтобы в строке ввода можно было писать только определенные символы? (цифры)

P.S. Вроде autoIt похож на С++, вот хочу спросить С++ намного сложнее чем autoIT?

Creat0R
21-05-2009, 19:51
Как проверить положение чекбокса? (стоит галочка или нет) »
If BitAND(GUICtrlRead($iCtrlID), $GUI_CHECKED) Then ...

Или

If ControlCommand("Title", "", "CtrlClassName", "IsChecked") Then ...

Как сделать так чтобы в строке ввода можно было писать только определенные символы? (цифры) »
Если именно цифры, то есть для этого стиль $ES_NUMBER.

Yashied
21-05-2009, 20:50
Можно это сделать более хитрым способом. Здесь можно полностью проанализировать вводимые символы и отредактировать их в случае необходимости. Кроме того, не будет работать Copy - Paste.

#Include <GUIConstants.au3>
#Include <EditConstants.au3>
#Include <WindowsConstants.au3>

GUICreate("MyGUI", 300, 50)
$Input = GUICtrlCreateInput("", 15, 15, 270, 19)
GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")
GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
Switch BitAND($wParam, 0xFFFF)
Case $Input
Switch BitShift($wParam, 16)
Case $EN_CHANGE

Local $Data = GUICtrlRead($Input)

; Здесь можно проанализировать строку, и отредактировать ее при необходимости
$Data = StringRegExpReplace($Data, "[^0-9]", "")

GUICtrlSetData($Input, $Data)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_COMMAND

leprecon
21-05-2009, 21:57
Но все таки способ Creat0R попроще будет. Но все равно спасибо. :)
А почему ты говоришь что не будет копирование работать? Только что проверил, прекрасно копируется и вставляется...

Yashied
21-05-2009, 23:02
А почему ты говоришь что не будет копирование работать? Только что проверил, прекрасно копируется и вставляется... »
Я имел в виду, что при использовании $ES_NUMBER, любой текст можно вставить банальным копированием.




© OSzone.net 2001-2012