找回密码
 加入
搜索
查看: 9142|回复: 18

[系统综合] 文本输入框变化时,取值查询数据库

 火.. [复制链接]
发表于 2012-9-29 15:06:46 | 显示全部楼层 |阅读模式
是这样的,有个身份证读卡的原程序,身份证在读卡器刷了后,原程序可以把身份信息读出来。我的程序就是自动取显示出来的身份证号,然后自动查询我自己的数据库。
问题:1,程序写的是个死循环,反复的在读取,我想请教下,有没有办法监视显示身份证的那个文本框,让它有变化的时候才读取,没有变化的时候不读取(因为有时候刷身份证得人多,有时候刷身份证得人少)
发表于 2012-9-29 22:21:28 | 显示全部楼层

$b = ""
$a = 获取文本框中的内容

if $a = $b then
    不搞什么
else
   查自己的数据库去
   $a = $b
endif



思想是这样的。
 楼主| 发表于 2012-10-7 11:43:21 | 显示全部楼层
回复 2# 绿色风

这个倒是可以实现不同时去查询数据库,但是还是挺耗资源的,我是想,当目标程序身份证号码框的号码变化的那个事件发生时,我的脚本来执行,而不是一直在那里执行
 楼主| 发表于 2012-10-7 11:43:48 | 显示全部楼层
回复 2# 绿色风

这个倒是可以实现不同时去查询数据库,但是还是挺耗资源的,我是想,当目标程序身份证号码框的号码变化的那个事件发生时,我的脚本来执行,而不是一直在那里执行
发表于 2012-10-7 11:46:25 | 显示全部楼层
en_change 消息
发表于 2012-10-7 14:57:19 | 显示全部楼层
截个图看看,一般情况下可以用消息事件函数来达到目的,根据控件不同通过不同的消息来获取消息
假如你要获取的控件是Input或者Edit就可以用EN_CHANGE事件来达到你要的目的
发表于 2012-10-7 15:00:10 | 显示全部楼层
http://msdn.microsoft.com/zh-cn/ ... loads/bb773169.aspx
这里有几乎所有的控件消息,进去后选择相应的控件,然后页面的Notifications下面就是相应的控件的事件,Contents就是在哪些系统消息里面可以捕获相应的事件
建议你先搜一下系统消息相关的知识
发表于 2012-10-7 15:01:34 | 显示全部楼层
这里是一个别人的例子,我直接贴上来,你可以看一下
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 194, 111, 192, 114)
$Edit1 = GUICtrlCreateEdit('', 32, 40, 131, 20)
$hEdit = GUICtrlGetHandle($Edit1)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func WM_COMMAND($hWnd, $msg, $wParam, $lParam)
        Local $iCode = BitShift($wParam, 16)        ; get the high word
        Switch $lParam
                Case $hEdit
                        Switch $iCode
                                Case $EN_CHANGE
                                        $text = GUICtrlRead($Edit1)
                                        MsgBox(0, "Contents", $text)
                        EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 楼主| 发表于 2012-10-8 08:16:58 | 显示全部楼层
[img][url][/url][/img]回复 6# qinylj

本帖子中包含更多资源

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

×
 楼主| 发表于 2012-10-8 08:19:02 | 显示全部楼层
回复 6# qinylj

我就是要取这个程序里面的身份证号
 楼主| 发表于 2012-10-8 16:42:55 | 显示全部楼层
在线等的蛋疼
发表于 2012-10-8 17:13:18 | 显示全部楼层
回复 11# macanchen

你的問題是  有個 A程序  是別人寫好的  已經可以讀取 卡片號碼了.....你無法編譯或者改些那個程序 對嗎

然後你要寫個 B程序  去讀取他......  
   

以上所說的是否正確
发表于 2012-10-17 10:06:57 | 显示全部楼层
Autoit跟VC++一样也是用的消息处理机制,所以我觉得8#楼的高手挺好!
 楼主| 发表于 2012-10-18 10:03:14 | 显示全部楼层
回复 12# kk_lee69


    是的
 楼主| 发表于 2012-10-18 10:03:16 | 显示全部楼层
回复 12# kk_lee69


    是的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 10:38 , Processed in 0.090091 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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