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