梦想吧技术论坛's Archiver

似水年华 发表于 2007-4-22 06:49 PM

AU3-一卡通辅助登记工具

[code]#cs ----------------------------------------------------------------------------

AutoIt Version: 3.1.1.0
Author:         myName

Script Function:
Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#NoTrayIcon
#include <GuiConstants.au3>
#include <Date.au3>
Dim $inifile_path=@ScriptDir&"\848570.ini",$yktmdb,$ykt_ini
$ykt_wdl="未登陆主机"
$t="*"
$yktmdb = IniRead($inifile_path,"初始纪录","一卡通安装路径","")
$ykt_ini = IniRead($inifile_path,"初始纪录","初始化","")
$dbname="848570.mdb"
$tblname1="newsfz"
$tblname2="sfzsm"
$tblname3="yxjl"
$fldname1="new_xm"
$fldname2="new_hm"
$fldname3="id"
$fldname4="seatNo"
$jl="0"
$jls2="1"
If Not FileExists($inifile_path) Then
MsgBox(64,"错误信息","当前目录下未发现标准数据库配置文件,确定后开始自动创建")
FileInstall("848570.ini", @ScriptDir&"\848570.ini")
EndIf
If Not FileExists($yktmdb) Then
$yktmdb = FileOpenDialog("查找一卡通数据库文件",@ScriptDir,"配置文件(*.mdb)",1,"bardb.MDB")
IniWrite($inifile_path, "初始纪录", "一卡通安装路径", $yktmdb)
EndIf
If $ykt_ini="0" Then
MsgBox(65,"错误信息","程序未初始化,请保证一卡通上网人员纪录中未登陆主机数目为一(并且是临时卡)!确定后自动初始化!")
$addfld = ObjCreate("ADODB.Connection")
$RS =ObjCreate("ADODB.Recordset")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $yktmdb)
$RS.ActiveConnection = $addfld
$sql="Select "&$t&" into newseat from seat where ip = '未登陆主机'"
$rs.open($sql)
$addfld.Close
IniWrite($inifile_path,"初始纪录","初始化","1")
EndIf
#region GUI
GuiCreate("一卡通辅助登陆程序 ", 255, 255);;;创建窗口标题 宽度及高度
GuiCtrlCreateLabel("注:本程序为一卡通辅助,请勿非法用途", 10, 10)
GUICtrlCreateGroup ("基本操作", 10, 25, 235, 120)
GUICtrlCreateLabel("请输入姓名:", 20, 45)
GUICtrlCreateLabel("请输入身份证号码:", 20, 90)
$Input1 = GUICtrlCreateInput("", 20, 65, 129, 21)
GUICtrlSetLimit ( -1, 10)   ;;;限制最多输入十位
$Input2 = GUICtrlCreateInput("",20,105,129,21)
GUICtrlSetLimit ( -1, 18)  ;;;限制最多输入十八位
$Button1 = GUICtrlCreateButton("写身份证号码", 156,50, 78, 21)
$Button2 = GUICtrlCreateButton("有身份证号码", 156,80, 78, 21)
$Button3 = GUICtrlCreateButton("无身份证号码", 156,110, 78, 21)
GUICtrlCreateGroup ("",-99,-99,1,1)
GUICtrlCreateGroup ("生成临时卡", 10, 150, 235, 80)
GuiCtrlCreateLabel("请在此输入押金数目", 20,170)
$input4 = GUICtrlCreateInput("10", 140, 165, 40, 21)
GUICtrlSetColor($input4,0xff0000)    ; 红色
$Button4 = GUICtrlCreateButton("生成临时卡上机", 20,195, 100, 21)
GUICtrlCreateGroup ("",-99,-99,1,1)
$input3 = GUICtrlCreateList('',130,198,105,25,$ES_AUTOVSCROLL+$WS_VSCROLL)
GuiCtrlCreateLabel("2007年1月2日      BY:~无泪悟爱iNg", 20, 235)
GUISetState ()
While 1
   $Msg = GuiGetMsg()
   Select
Case $msg = $GUI_EVENT_CLOSE
  Exit
    Case $msg = $button1          ;;;点"写身份证"按钮则
     $idINPUT1 = GUICTRLREAD($INPUT1)   ;;读取第一个输入框的内容,赋到$idINPUT1
              $idINPUT2 = GUICTRLREAD($INPUT2)
      xiesfz_mdb()
Case $msg = $button2
              $idINPUT1 = GUICTRLREAD($INPUT1)   ;;读取第一个输入框的内容,赋到$idINPUT1
              $idINPUT2 = GUICTRLREAD($INPUT2)
     WinActivate ("通卡上网登记","")
              ControlSetText("通卡上网登记","","ThunderRT6TextBox10",$idINPUT1)
              ControlSetText("通卡上网登记","","ThunderRT6TextBox9",$idINPUT2)
              xiesfz_mdb()
    Case $msg =$button3
     $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $RS.Open   ("Select "&$T & " From " & $tblname3 )
     $yxjl = $RS.Fields(0).Value
     $sfz_yxjl = $yxjl + 1
     $addfld.Close
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $RS.Open   ("Select "&$T & " From " & $tblname2 )
     $id_jl = $RS.Fields(0).Value
     $sfz_sm = $id_jl + 1
     $addfld.Close
  If $sfz_yxjl = $sfz_sm Then
              $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
    $sql6='UPDATE yxjl SET yxjl = 0'
     $addfld.Execute($sql6)
     $addfld.Close     
     $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $ssql6='Select new_xm,new_hm from newsfz where id = "'&$jls2&'"'
        $RS.Open($ssql6)
        $ykt_lsxm = $RS.Fields(0).Value
        $ykt_lssfz= $RS.Fields(1).Value
        $sql4='UPDATE yxjl SET yxjl = "'&$jls2&'"'
        $addfld.Execute($sql4)
              $addfld.Close
     WinActivate ("通卡上网登记","")
              ControlSetText("通卡上网登记","","ThunderRT6TextBox10",$ykt_lsxm)
              ControlSetText("通卡上网登记","","ThunderRT6TextBox9",$ykt_lssfz)
    EndIf
  If $sfz_yxjl < $sfz_sm Then
              $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")
     $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $sql6='Select new_xm,new_hm from newsfz where id = "'&$sfz_yxjl&'"'
        $RS.Open($sql6)
        $ykt_lsxm = $RS.Fields(0).Value
        $ykt_lssfz= $RS.Fields(1).Value
        $sql4='UPDATE yxjl SET yxjl = "'&$sfz_yxjl&'"'
        $addfld.Execute($sql4)
              $addfld.Close
     WinActivate ("通卡上网登记","")
              ControlSetText("通卡上网登记","","ThunderRT6TextBox10",$ykt_lsxm)
              ControlSetText("通卡上网登记","","ThunderRT6TextBox9",$ykt_lssfz)
    EndIf
    Case $msg = $button4
     GUICtrlSetData ( $input3, "" )
     $ykt_lsk1=3206*100000000
              $ykt_lsk2=@MDAY*1000000
              $ykt_lsk3=@HOUR*10000
              $ykt_lsk4=@MIN*100+@SEC
     $ykt_lsk5=@MON*100000000
              $ykt_lsk=$ykt_lsk1+$ykt_lsk2+$ykt_lsk3+$ykt_lsk4
     $ykt_time=$ykt_lsk5+$ykt_lsk2+$ykt_lsk3+$ykt_lsk4
     $seat_no=(Random(1000000000,9999999999, 1) )
     $idINPUT4 = GUICTRLREAD($INPUT4)
     $ykt_monyls = $idINPUT4*2
     $ykt_mony = $idINPUT4 - $ykt_monyls
     $ykt_data=_Now()  
     GUICtrlSetColor($input3,0xff0000)    ; 红色
     GUICtrlSetFont ($input3,12)
     GUICtrlSetData ( $input3, $ykt_lsk )
     $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $RS.Open   ("Select "&$T & " From " & $tblname3 )
     $yxjl = $RS.Fields(0).Value
     $sfz_yxjl = $yxjl + 1
     $addfld.Close
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $RS.Open   ("Select "&$T & " From " & $tblname2 )
     $id_jl = $RS.Fields(0).Value
     $sfz_sm = $id_jl + 1
     $addfld.Close
  If $sfz_yxjl = $sfz_sm Then
              $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
    $sql6='UPDATE yxjl SET yxjl = 0'
     $addfld.Execute($sql6)
     $addfld.Close     
     $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $ssql6='Select new_xm,new_hm from newsfz where id = "'&$jls2&'"'
        $RS.Open($ssql6)
        $ykt_lsxm = $RS.Fields(0).Value
        $ykt_lssfz= $RS.Fields(1).Value
        $sql4='UPDATE yxjl SET yxjl = "'&$jls2&'"'
        $addfld.Execute($sql4)
              $addfld.Close   
         $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
        $sql5='Insert Into newlog Values ("'&$ykt_lsk&'","'& $ykt_time &'","'&$idINPUT4&'")'
        $addfld.Execute($sql5)
              $addfld.Close
        xgykt_mdb()
    EndIf
  If $sfz_yxjl < $sfz_sm Then
              $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")   
     $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $sql6='Select new_xm,new_hm from newsfz where id = "'&$sfz_yxjl&'"'
        $RS.Open($sql6)
        $ykt_lsxm = $RS.Fields(0).Value
        $ykt_lssfz= $RS.Fields(1).Value
        $sql4='UPDATE yxjl SET yxjl = "'&$sfz_yxjl&'"'
        $addfld.Execute($sql4)
              $addfld.Close
        $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
        $sql5='Insert Into newlog Values ("'&$ykt_lsk&'","'& $ykt_time &'","'&$idINPUT4&'")'
        $addfld.Execute($sql5)
              $addfld.Close
     xgykt_mdb()
   EndIf
EndSelect     
  WEnd   
     
   
   Func xgykt_mdb()  ;修改一卡通MDB中的NEWSEAT并复制修改好后的数据到SEAT
              $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")     
                 $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $yktmdb)
     $RS.ActiveConnection = $addfld
     $yktls_sql1='UPDATE newseat SET seatno = "'&$seat_no&'"'
                 $yktls_sql2='UPDATE newseat SET startTime = "'&$ykt_data&'"'
                 $yktls_sql3='UPDATE newseat SET endTime = "'&$ykt_data&'"'
                 $yktls_sql4='UPDATE newseat SET totalfare = "'&$ykt_mony&'"'
     $yktls_sql5='UPDATE newseat SET prefare = "'&$idINPUT4&'"'
                 $yktls_sql6='UPDATE newseat SET OnCardNo = "'&$seat_no&'"'
                 $yktls_sql7='UPDATE newseat SET name = "'&$ykt_lsxm&'"'
                 $yktls_sql8='UPDATE newseat SET LabelNub = "'&$ykt_lsk&'"'
     $yktls_sql9='UPDATE newseat SET CertificateNo = "'&$ykt_lssfz&'"'
        $addfld.Execute($yktls_sql1)     
        $addfld.Execute($yktls_sql2)
        $addfld.Execute($yktls_sql3)
        $addfld.Execute($yktls_sql4)
        $addfld.Execute($yktls_sql5)
        $addfld.Execute($yktls_sql6)
        $addfld.Execute($yktls_sql7)
        $addfld.Execute($yktls_sql8)
        $addfld.Execute($yktls_sql9)
                 $yktls_sql10="insert into seat Select "&$t&" from newseat"
        $addfld.Execute($yktls_sql10)
              $addfld.Close
     EndFunc
       Func xiesfz_mdb() ;将输入的身份证写入数据库848570.MDB
              $addfld = ObjCreate("ADODB.Connection")
              $RS =ObjCreate("ADODB.Recordset")      
              $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&@ScriptDir&"\848570.mdb")
     $RS.ActiveConnection = $addfld
     $RS.Open   ("Select "&$T & " From " & $tblname2 )
     $id_jl = $RS.Fields(0).Value
     $sfz_sm = $id_jl + 1
     $sql1='Insert Into newsfz Values ("'&$sfz_sm&'","'& $idINPUT1 &'","'& $idINPUT2 &'")'
     $sql2='UPDATE sfzsm SET sfzsm = "'&$sfz_sm&'"'
              $addfld.Execute($sql1)
     $addfld.Execute($sql2)
     $addfld.Close
     EndFunc[/code]

似水年华 发表于 2007-4-28 11:09 PM

来个图看看

yct15
[attach]1005[/attach]

redapple 发表于 2007-4-29 07:15 AM

楼主辛苦了!这么多代码,我什么时候才能学会呀!
AU3好太厉害了!
谢谢楼主。
这些代码是初学者的最好的老师。

sy9931 发表于 2007-5-12 02:02 AM

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶~谢谢楼主~

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.