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

[AU3基础] 在Input框中检测CapsLock大小写

 火.. [复制链接]
 楼主| 发表于 2010-12-2 09:50:18 | 显示全部楼层
恩 但是9楼的看不到我输入的数字
要是能看到数字就完美了
发表于 2010-12-2 12:02:32 | 显示全部楼层
回复 17# yarsye
这样行不?
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <winapiex.au3>

Global Const $EN_SETFOCUS = 0x100
Global Const $EN_UPDATE = 0x400 
Global $hGUI
Global Const $VK_NUMLOCK=0x14
$hGUI = GUICreate("检测Combo有键盘输入", 400, 96)
$hEDIT1 = GUICtrlCreateEdit("",2,5,396,20);
$hEDIT = GUICtrlCreateEdit("",2,25,396,20)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Do
Until GUIGetMsg() = -3
GUIDelete()
 
Func WM_COMMAND($hWinHandle, $iMsg, $wParam, $lParam)
Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
Local $state[2]=['未锁定','锁定']
 If Not IsHWnd($hedit) Then $hWndEdit = GUICtrlGetHandle($hedit)
 If Not IsHWnd($hedit1) Then $hWndEdit1 = GUICtrlGetHandle($hedit1)
 $hWndFrom = $lParam
 $iIDFrom = _WinAPI_LoWord($wParam);控件ID
 $iCode = _WinAPI_HiWord($wParam);消息
 Switch $hWndFrom
  Case $hedit, $hWndEdit,$hedit1,$hWndEdit1
   Switch $iCode
    Case $EN_UPDATE Or $EN_SETFOCUS
        If BitAND(_WinAPI_GetKeyState($VK_NUMLOCK), 1)=1 Then 
            $pos=WinGetPos( "检测Combo有键盘输入", "")
            ToolTip('大写锁定',$pos[0]+100,$pos[1]+25,'',1,1)
            GUICtrlSetData($iIDFrom,StringRegExpReplace(GUICtrlRead($iIDFrom),'[A-Z]+',''))
        Else
            ToolTip('')
        EndIf
    EndSwitch
 EndSwitch
EndFunc

评分

参与人数 2金钱 +60 收起 理由
yarsye + 30
afan + 30

查看全部评分

 楼主| 发表于 2010-12-2 17:26:06 | 显示全部楼层
回复 18# 3mile


    厉害!正则都用上了!佩服!

而且如果要是想显示大写字母把【A-Z】 改写【】为空就可以了 ,对吧。
发表于 2010-12-7 21:31:05 | 显示全部楼层
正找这个 呢   谢谢了
 楼主| 发表于 2010-12-9 08:56:09 | 显示全部楼层
厉害啊 感谢了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-6 18:16 , Processed in 0.072338 second(s), 17 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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