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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как проверить Checkbox, как в Input писать только определенные символы (http://forum.oszone.net/showthread.php?t=140742)

leprecon 21-05-2009 18:52 1124192

Как проверить Checkbox, как в Input писать только определенные символы
 
1.Как проверить положение чекбокса? (стоит галочка или нет)
Например есть список серверов которые нужно пропинговать, я наставил на нужных галки, и как мне скриптом определить на каких чекбоксах стоят галки и пропинговать только их?

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

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

Creat0R 21-05-2009 19:51 1124275

Цитата:

Цитата leprecon
Как проверить положение чекбокса? (стоит галочка или нет) »

Код:

If BitAND(GUICtrlRead($iCtrlID), $GUI_CHECKED) Then ...
Или

Код:

If ControlCommand("Title", "", "CtrlClassName", "IsChecked") Then ...
Цитата:

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

Если именно цифры, то есть для этого стиль $ES_NUMBER.

Yashied 21-05-2009 20:50 1124334

Можно это сделать более хитрым способом. Здесь можно полностью проанализировать вводимые символы и отредактировать их в случае необходимости. Кроме того, не будет работать 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 1124410

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

Yashied 21-05-2009 23:02 1124481

Цитата:

Цитата leprecon
А почему ты говоришь что не будет копирование работать? Только что проверил, прекрасно копируется и вставляется... »

Я имел в виду, что при использовании $ES_NUMBER, любой текст можно вставить банальным копированием.


Время: 15:26.

Время: 15:26.
© OSzone.net 2001-