找回密码
 加入
搜索
查看: 2120|回复: 7

请教怎么自动分段输入序列号?形如xxxx-xxxx

[复制链接]
发表于 2008-5-8 18:12:23 | 显示全部楼层 |阅读模式
如图,我想实现,在输入CD-KEY的时候,每输入5个字符光标就自动切换到下一文本框,请问怎么现实。

[ 本帖最后由 assassin 于 2008-5-12 13:44 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2008-5-9 08:03:11 | 显示全部楼层
还是不太明白,请回答的具体一点好吗?最好给出代码,谢谢
 楼主| 发表于 2008-5-9 10:12:16 | 显示全部楼层
谢谢您的解答,现在的问题是不知道怎么调用,或是什么时候调用
比如HTML里可以用OnChange来调用,在Autoit里怎么调用呢?
 楼主| 发表于 2008-5-9 16:02:32 | 显示全部楼层
没人知道吗?知道的请指教!
 楼主| 发表于 2008-5-12 09:04:52 | 显示全部楼层
我打算在文本框内容有变化的时候调用自定义的检查函数
发表于 2008-5-12 10:41:57 | 显示全部楼层
Opt("GUIOnEventMode", 1)
#include <GUIConstants.au3>
Global $Inp[5], $Chk = 0
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 525, 136, 193, 125)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
$Inp[0] = GUICtrlCreateInput("", 32, 56, 89, 21)
$Inp[1] = GUICtrlCreateInput("", 128, 56, 89, 21)
$Inp[2] = GUICtrlCreateInput("", 224, 56, 89, 21)
$Inp[3] = GUICtrlCreateInput("", 320, 56, 81, 21)
$Inp[4] = GUICtrlCreateInput("", 408, 56, 81, 21)
For $I = 0 To 4
        GUICtrlSetLimit($Inp[$I], 5)
Next
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        If $Chk = 0 Then ChkInp()
        Sleep(100)
WEnd

Func ChkInp()
        Local $I
        For $I = 4 To 0 Step - 1
                If StringLen(GUICtrlRead($Inp[$I])) = 5 Then
                        If $I = 4 Then
                                MsgBox(0, 0, GUICtrlRead($Inp[0]) & "-" & GUICtrlRead($Inp[1]) & "-" & GUICtrlRead($Inp[2]) _
                                                 & "-" & GUICtrlRead($Inp[3]) & "-" & GUICtrlRead($Inp[4]))
                                $Chk = 1
                                ExitLoop
                        EndIf
                        If StringLen(GUICtrlRead($Inp[$I + 1])) = 0 Then
                                GUICtrlSetState($Inp[ $I + 1 ], $GUI_Focus)
                                ExitLoop
                        EndIf
                EndIf
                If $I = 0 And StringLen(GUICtrlRead($Inp[$I])) = 0 Then GUICtrlSetState($Inp[ $I ], $GUI_Focus)
        Next
EndFunc   ;==>ChkInp

Func quit()
        Exit
EndFunc   ;==>quit


不知这个能达到楼主想要的效果么?没什么间,所以没注解。如果其中的某个地方不清楚,楼主可以跟贴问我。










[

[ 本帖最后由 漠北雪~狼 于 2008-5-12 10:45 编辑 ]
 楼主| 发表于 2008-5-12 13:44:07 | 显示全部楼层
谢谢,这个可以达到我的要求。
发表于 2008-11-6 09:52:51 | 显示全部楼层
正确的序列号 没有显示出来
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-2 18:21 , Processed in 0.074695 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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