yarsye 发表于 2010-12-2 09:50:18

恩 但是9楼的看不到我输入的数字
要是能看到数字就完美了

3mile 发表于 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=['未锁定','锁定']
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+100,$pos+25,'',1,1)
            GUICtrlSetData($iIDFrom,StringRegExpReplace(GUICtrlRead($iIDFrom),'+',''))
      Else
            ToolTip('')
      EndIf
    EndSwitch
EndSwitch
EndFunc

yarsye 发表于 2010-12-2 17:26:06

回复 18# 3mile


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

而且如果要是想显示大写字母把【A-Z】 改写【】为空就可以了 ,对吧。

872777825 发表于 2010-12-7 21:31:05

正找这个 呢   谢谢了

yarsye 发表于 2010-12-9 08:56:09

厉害啊 感谢了
页: 1 [2]
查看完整版本: 在Input框中检测CapsLock大小写