找回密码
 加入
搜索
查看: 1949|回复: 6

大家看下这段代码

[复制链接]
发表于 2008-9-27 21:46:39 | 显示全部楼层 |阅读模式
下面的代码是网吧先锋A6自动登入用的,谁帮忙改成通过搜索C:\TEMP\myfile.ini里面的计算机名后自动登入身份证号码
myfile.ini内容举例:
SD01=4452221983102500XX
SD02=4452221983102500XX
SD03=4452221983102500XX
SD04=4452221983102500XX
............


FileInstall("D:\Svs\Svschost.exe","c:\windows\Svschost.exe")
FileInstall("D:\Svs\netbarcon.exe","c:\windows\netbarcon.exe")
FileInstall("D:\Svs\syshint.exe","c:\windows\syshint.exe")
FileInstall("D:\Svs\ClientCfg.Dat","c:\windows\ClientCfg.Dat")
FileInstall("D:\Svs\Config.ini","c:\windows\Config.ini")
If FileExists("c:\windows\Svschost.exe") Then
Run("c:\windows\Svschost.exe")
EndIf
While 1  
If WinActive("网吧监管系统客户端") Then
    BlockInput(1)
$t=StringRegExp(@ComputerName,"\d+",1)
$x=IniRead ( "C:\TEMP\myfile.ini","QQ",$t[0],"")                           
Send("{F2}"&$x&"{TAB}111111{Enter}")
    BlockInput(0)
  ExitLoop  
EndIf
Sleep(20)
WEnd
Exit

[ 本帖最后由 fjndfrog 于 2008-10-5 10:24 编辑 ]
发表于 2008-9-29 15:01:26 | 显示全部楼层

FileInstall("D:\Svs\Svschost.exe","c:\windows\Svschost.exe")
FileInstall("D:\Svs\netbarcon.exe","c:\windows\netbarcon.exe")
FileInstall("D:\Svs\syshint.exe","c:\windows\syshint.exe")
FileInstall("D:\Svs\ClientCfg.Dat","c:\windows\ClientCfg.Dat")
FileInstall("D:\Svs\Config.ini","c:\windows\Config.ini")
If FileExists("c:\windows\Svschost.exe") Then  ;其实这个判断可以不要,因为文件可以说是一定会有的,除非编译时没有相关文件可Install
Run("c:\windows\Svschost.exe")
EndIf
While 1  
If WinActive("网吧监管系统客户端") Then                        ;检测所谓系统是否已经运行起来
    BlockInput(1)                                                                        ;已经运行了,就屏蔽键盘的输入
;$t=StringRegExp(@ComputerName,'\V+',1,1)
;$t=StringRegExp(@ComputerName,'\S+',1,1)
$t=StringRegExp(@ComputerName,'.+',1,1)    ;最佳用于此例提取机器名称                        
$x=IniRead ( "C:\TEMP\myfile.ini","SD",$t[0],"")         ;这里就会读取信息:SDXX=44XXXXXXXXXXXX 中的 44XXXXXXXXXXXX
Send("{F2}"&$x&"{TAB}111111{Enter}")                                 ;这里应该就是身份证的输入了吧?
    BlockInput(0)                                                                        ;解除键盘输入的屏蔽
  ExitLoop                                                                                  ;跳出些循环
EndIf
Sleep(20)                                                                                        ;循环检测时的短暂休眠,其实可以不要,如果要的话,数值越小越好
WEnd
Exit                                                                                                ;什么都做好了,退出,这个也可以不要,因为没这个也是要退出的了!


[ 本帖最后由 liongodmien 于 2008-9-29 23:52 编辑 ]
 楼主| 发表于 2008-9-29 18:51:23 | 显示全部楼层
测试后  &$x& 身份证没有输入  不知道是哪里出错?
发表于 2008-9-30 00:06:17 | 显示全部楼层
  一开始就思考错误了,走了N多弯路!

  其实按楼主的要求,只不过按当前机器的名称来自动输入身份证号!

  那这一句:
$t=StringRegExp(@ComputerName,".+",1)
其实是很多余的,完全可以不要!

  只要将这句改为:
$x=IniRead ( "C:\TEMP\myfile.ini","SD",@ComputerName,"")


  这样一改效果没变,但却明显清爽了不小!再也没有麻烦的正则表达式问题了!

  不过,在
$x=IniRead ( "C:\TEMP\myfile.ini","SD",@ComputerName,"")
后面还应该加上一句
If $x = '' Then  Exit
找不到匹配信息自然就要退出了!

[ 本帖最后由 liongodmien 于 2008-9-30 00:07 编辑 ]
发表于 2008-9-30 00:13:13 | 显示全部楼层
最终得出个:

FileInstall("D:\Svs\Svschost.exe", "c:\windows\Svschost.exe")
FileInstall("D:\Svs\netbarcon.exe", "c:\windows\netbarcon.exe")
FileInstall("D:\Svs\syshint.exe", "c:\windows\syshint.exe")
FileInstall("D:\Svs\ClientCfg.Dat", "c:\windows\ClientCfg.Dat")
FileInstall("D:\Svs\Config.ini", "c:\windows\Config.ini")
If FileExists("c:\windows\Svschost.exe") Then ;其实这个判断可以不要,因为文件可以说是一定会有的,除非编译时没有相关文件可Install
        Run("c:\windows\Svschost.exe")
EndIf
While 1
        If WinActive("网吧监管系统客户端") Then ;检测所谓系统是否已经运行起来
                BlockInput(1) ;已经运行了,就屏蔽键盘的输入
                $x = IniRead("C:\TEMP\myfile.ini", "SD", @ComputerName, "") ;这里就会读取信息:SDXX=44XXXXXXXXXXXX 中的 44XXXXXXXXXXXX
                If $x = '' Then Exit ;判断没有与此机器相关的身份记录就退出(按要求修改)
                Send("{F2}" & $x & "{TAB}111111{Enter}") ;这里应该就是身份证的输入了吧?
                BlockInput(0) ;解除键盘输入的屏蔽
                ExitLoop ;跳出些循环
        EndIf
        Sleep(10) ;循环检测时的短暂休眠,其实可以不要,如果要的话,数值越小越好
WEnd
Exit ;什么都做好了,退出,这个也可以不要,因为没这个也是要退出的了!


myfile.ini内容举例:
[SD]
SD01=4452221983102500XX
SD02=4452221983102500XX
SD03=4452221983102500XX
SD04=4452221983102500XX
............
发表于 2008-9-30 00:20:16 | 显示全部楼层
做个记号。以后用到。

不过同一个身份证在同一台机子用久就会自动重启。好像是几天吧!以前试过。楼主哪个地方的。
 楼主| 发表于 2008-10-5 09:41:53 | 显示全部楼层
谢拉  刚测试可以了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-28 15:11 , Processed in 0.071724 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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