首页 > 代码库 > [au3]批量输入号码程序

[au3]批量输入号码程序

批量输入号码程序

这个文件可以随时产生一个剪贴板文字的文本文件,以供其他程序读取。

这个程序修改了许多次了,主要是针对网络延迟的问题。

最终找到了解决方案:探测输入的界面的反馈信息,也就是反馈的颜色。当输入完成以后界面恢复到正常,再开始输入另外一个号码。

 

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")

AutoItSetOption("WinTitleMatchMode", 2)  ;是为了调用ie状态栏判断
#include<File.au3>
$var=ClipGet()

;~ 下面是针对回收塑料箱里面的中文,进行回车处理
;~ $var_cn=StringRegExp($var, \D, 1) ;选出中文
;$var1=StringReplace($var,$var_cn,@CR )
;~ MsgBox(16,12121,$var_cn)
$text = StringReplace($var,"",@CR )  ;如果有逗号换成换行
$text = StringReplace($text,",",@CR )  ;如果有逗号换成换行
$txt="D:\剪贴板.txt"
_FileCreate($txt)
FileWrite($txt,$text)

;以下是逐行输入文本的代码,与read一样
$cele=MsgBox(262145,"注意","请将光标放在需要输入号码的地方,按确定后3秒钟开始自动输入!")
if 2=$cele Then
        Exit
        EndIf
ToolTip("如果错误出现的太多,请重新登陆系统。中断输入请按 pause", 0, 0,"小提示",1,4)
Sleep(3000)


;这里得到当前鼠标的正常状态的颜色,以便不正常的时候停止等待~
ToolTip("请将鼠标移动到检测部位,就是繁忙时候会变颜色的地方", 0, 0,"小提示",1,4)
$pos = MouseGetPos()
$var0= PixelGetColor($pos[0],$pos[1])

sleep(1500)


#include <IE.au3>

$oIE = WinGetTitle ("")
$file = FileOpen($txt,0)
; Read in 1 character at a time until the EOF is reached
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    ;MsgBox(0, "Line read:", $line)
        send($line,1)
        send("{ENTER}")
 Sleep(100)     ;121212-50

  ; _IELoadWait ($oIE,50,10000)

 ;试图用ie的地址栏文本判断是否繁忙,平时的时候是“完毕”  ;还需要判断是不是有新的信息跳出来,(通过判断原来的窗口死活)300

;通过检查原来的ie界面时候变灰,来判断新是否有新窗口跳出
DO

Sleep(200)  ;等待窗口出现
$var = PixelGetColor($pos[0],$pos[1]);获取当前颜色
if $var0<>$var then
        ;Sleep(150)
        EndIf


;~下面即使出现错误也发送回车 
;~ #cs
If  0=WinActive($oIE)   then   ;差错2016
                Sleep(150)
        send("{ENTER}")
        EndIf
;~              #ce

until  1=WinActive($oIE) and $var0=$var

Send("{BS 14}")   ;在输入以前清空内容,向文本框发出12次回格命令
Wend
FileClose($file)





Func TogglePause()
    $Paused = NOT $Paused
        ClipPut($line) ;输出当前错误的号码 key
    While $Paused
        sleep(100)
        ToolTip(脚本已被“暂停”,0,0)
    WEnd
    ToolTip("")
EndFunc

Func Terminate()
    Exit 0
EndFunc


MsgBox(48,"通知","你的输入已经完成!")

 这个程序如何使用呢?

看看程序里面的说明,就应该知道大概了。

首先,我们复制需要输入的号码,可以几个或者是表格的一列号码。

然后启动这个程序,把鼠标放在需要输入的文本框里。

程序跳入号码,然后等待反馈。

继续第二个号码。直到输入全部完成。

 

希望上面的代码能够让同好们借鉴到,用于自己的编程中。

[au3]批量输入号码程序