fjndfrog 发表于 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,"")                           
Send("{F2}"&$x&"{TAB}111111{Enter}")
    BlockInput(0)
ExitLoop
EndIf
Sleep(20)
WEnd
Exit

[ 本帖最后由 fjndfrog 于 2008-10-5 10:24 编辑 ]

liongodmien 发表于 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,"")         ;这里就会读取信息:SDXX=44XXXXXXXXXXXX 中的 44XXXXXXXXXXXX
Send("{F2}"&$x&"{TAB}111111{Enter}")                                 ;这里应该就是身份证的输入了吧?
    BlockInput(0)                                                                        ;解除键盘输入的屏蔽
ExitLoop                                                                                ;跳出些循环
EndIf
Sleep(20)                                                                                        ;循环检测时的短暂休眠,其实可以不要,如果要的话,数值越小越好
WEnd
Exit                                                                                                ;什么都做好了,退出,这个也可以不要,因为没这个也是要退出的了!


[ 本帖最后由 liongodmien 于 2008-9-29 23:52 编辑 ]

fjndfrog 发表于 2008-9-29 18:51:23

测试后&$x& 身份证没有输入不知道是哪里出错?

liongodmien 发表于 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 = '' ThenExit找不到匹配信息自然就要退出了!

[ 本帖最后由 liongodmien 于 2008-9-30 00:07 编辑 ]

liongodmien 发表于 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内容举例:

SD01=4452221983102500XX
SD02=4452221983102500XX
SD03=4452221983102500XX
SD04=4452221983102500XX
............

fjxm 发表于 2008-9-30 00:20:16

做个记号。以后用到。

不过同一个身份证在同一台机子用久就会自动重启。好像是几天吧!以前试过。楼主哪个地方的。

fjndfrog 发表于 2008-10-5 09:41:53

谢拉刚测试可以了
页: [1]
查看完整版本: 大家看下这段代码