找回密码
 加入
搜索
楼主: laojikelly

[求助]如何判断输入框中是否输入有字符??

[复制链接]
 楼主| 发表于 2009-4-20 10:25:44 | 显示全部楼层
我已经可以实现了。谢谢。。。
改天再发上来。。。
发表于 2010-8-13 16:25:48 | 显示全部楼层
做个记号。
发表于 2010-9-13 01:44:06 | 显示全部楼层
#include <WinAPI.au3>
 
If not IsDeclared("WM_CHAR") Then CONST $WM_CHAR = 0x102
If not IsDeclared("WM_PASTE") Then CONST $WM_PASTE = 0x302
If not IsDeclared("WM_SETTEXT") Then CONST $WM_SETTEXT = 0xc
 
$hGUI = GUICreate("Test", 200, 100)
 
$iIptTest = GUICtrlCreateInput("", 20, 20, 160, 20)
$hIpt = GUICtrlGetHandle(-1)
 
$hIptProc = DllCallbackRegister("_IptProc", "int", "hWnd;uint;wparam;lparam")
$pIptProc = DllCallbackGetPtr($hIptProc)
$hOldProc = _WinAPI_SetWindowLong($hIpt, -4, $pIptProc)
 
GUISetState()
 
Do
Until guiGetMsg() = -3
 
 
Func _IptProc($hWnd, $iMsg, $wParam, $lParam)
        ConsoleWrite("0x" & Hex($iMsg) & @CRLF)
        If $iMsg = $WM_CHAR Then
                If $wparam <> 8 And StringRegExp(Chr($wparam), "[0-9]") = 0 Then
                        _WinAPI_MessageBeep(2)
                        Return False
                EndIf
        ElseIf $iMsg = $WM_PASTE Then
                If StringRegExp(ClipGet(), "[\x20-\x7f]") Then Return False
        ElseIf $iMsg = $WM_SETTEXT Then
                _WinAPI_MessageBeep(2)
                Return False
        EndIf
        Return _WinAPI_CallWindowProc($hOldProc, $hWnd, $iMsg, $wParam, $lParam)
EndFunc ;==>_IptProc()
代码能不能修改成  只能前17位是数字 第18位可以是数字和字母?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 08:25 , Processed in 0.086176 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表