macanchen 发表于 2012-9-29 15:06:46

文本输入框变化时,取值查询数据库

是这样的,有个身份证读卡的原程序,身份证在读卡器刷了后,原程序可以把身份信息读出来。我的程序就是自动取显示出来的身份证号,然后自动查询我自己的数据库。
问题:1,程序写的是个死循环,反复的在读取,我想请教下,有没有办法监视显示身份证的那个文本框,让它有变化的时候才读取,没有变化的时候不读取(因为有时候刷身份证得人多,有时候刷身份证得人少)

绿色风 发表于 2012-9-29 22:21:28


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

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



思想是这样的。

macanchen 发表于 2012-10-7 11:43:21

回复 2# 绿色风

这个倒是可以实现不同时去查询数据库,但是还是挺耗资源的,我是想,当目标程序身份证号码框的号码变化的那个事件发生时,我的脚本来执行,而不是一直在那里执行

macanchen 发表于 2012-10-7 11:43:48

回复 2# 绿色风

这个倒是可以实现不同时去查询数据库,但是还是挺耗资源的,我是想,当目标程序身份证号码框的号码变化的那个事件发生时,我的脚本来执行,而不是一直在那里执行

风行者 发表于 2012-10-7 11:46:25

en_change 消息

qinylj 发表于 2012-10-7 14:57:19

截个图看看,一般情况下可以用消息事件函数来达到目的,根据控件不同通过不同的消息来获取消息
假如你要获取的控件是Input或者Edit就可以用EN_CHANGE事件来达到你要的目的

qinylj 发表于 2012-10-7 15:00:10

http://msdn.microsoft.com/zh-cn/subscriptions/downloads/bb773169.aspx
这里有几乎所有的控件消息,进去后选择相应的控件,然后页面的Notifications下面就是相应的控件的事件,Contents就是在哪些系统消息里面可以捕获相应的事件
建议你先搜一下系统消息相关的知识

qinylj 发表于 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

macanchen 发表于 2012-10-8 08:16:58

回复 6# qinylj

macanchen 发表于 2012-10-8 08:19:02

回复 6# qinylj

我就是要取这个程序里面的身份证号

macanchen 发表于 2012-10-8 16:42:55

在线等的蛋疼

kk_lee69 发表于 2012-10-8 17:13:18

回复 11# macanchen

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

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

以上所說的是否正確

ppzpph 发表于 2012-10-17 10:06:57

Autoit跟VC++一样也是用的消息处理机制,所以我觉得8#楼的高手挺好!

macanchen 发表于 2012-10-18 10:03:14

回复 12# kk_lee69


    是的

macanchen 发表于 2012-10-18 10:03:16

回复 12# kk_lee69


    是的
页: [1] 2
查看完整版本: 文本输入框变化时,取值查询数据库