找回密码
 加入
搜索
查看: 2171|回复: 0

[系统综合] 求改进

  [复制链接]
发表于 2012-7-8 14:28:18 | 显示全部楼层 |阅读模式
Func AutoLoginSududa($_sududaProgrameFilePath='',$_sududaUser='',$_sududaPWD='')  ;打开程序,并自动登录速度达 20秒超时
        Local $_sududaProcessName=StringSplit($_sududaProgrameFilePath,'\')                        ;获取速度达主程序名
        $_sududaProcessName=$_sududaProcessName[$_sududaProcessName[0]]
        Local $_sududaPID=0         ;定义变量 用于存储速度达主程序PID
        Local $_sududaFormTitle="用户登录",$_sududaFormTitleClass="[CLASS:TFrmLogin]"        ;定义速度达登录窗口的标题和 类名
        If $_sududaProcessName='' Or $_sududaUser='' Or $_sududaPWD='' Then Return 0
        If Not ProcessExists($_sududaProcessName) Then        ;如果没有速度达进程
                $_sududaPID=Run($_sududaProgrameFilePath)        ;则启动
                WinWait($_sududaFormTitle)                ;等待出现窗口
                WinSetOnTop($_sududaFormTitle,"",1)        ;设置顶层样式
                ;ControlFocus($_sududaFormTitle, '', 'Edit1')
                ;ControlSend($_sududaFormTitle, '', 'Edit1', $_sududaUser);这样才能正确输入
                ControlSetText($_sududaFormTitle,"","Edit1",$_sududaUser)        ;发送用户
                ControlSetText($_sududaFormTitle,"","TPasswordEdit1",$_sududaPWD)        ;发送密码
                ControlClick($_sududaFormTitle,"","TRzBitBtn2")        ;点击登录
                WinSetOnTop($_sududaFormTitle,"",0)         ;取消顶层样式
                Local $nowTime=TimerInit()         ;初始化时间戳
                Do
                        Sleep(1000)
                        If WinExists("提示","登录密码错误") Or WinExists("提示","登录密码错误") Or TimerDiff($nowTime)>20000 Then         ;如果有密码错误提示框  或者超时了,则返回假.
                                Return 0
                                ExitLoop
                        EndIf
                Until WinGetState($_sududaFormTitle)=5        ;如果登录窗口隐藏了 ,则认为登录成功了.
                If $_sududaPID<>0 And TimerDiff($nowTime)<20000 Then                        ;速度达登录成功后,检测是否有一个弹出框
                        If WinExists("如何加款?") Then WinClose("如何加款?")                ;如果有,则关闭
                        Return $_sududaPID        ;返回速度达的PID
                Else
                        Return 0
                EndIf
        Else                ;如果系统已经启动了速度达
                WinActivate($wintitle)                ;则激活窗口
                $_sududaPID=ProcessExists($_sududaProcessName) ;获取速度达PID
                Return $_sududaPID        ;返回
        EndIf
       
EndFunc

问题: ControlSetText($_sududaFormTitle,"","Edit1",$_sududaUser)  用这个显示登入超时

        ControlFocus($_sududaFormTitle, '', 'Edit1')
        ControlSend($_sududaFormTitle, '', 'Edit1', $_sududaUser);用这个,@变成2.

评分

参与人数 1金钱 -20 收起 理由
afan -20

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-10 13:41 , Processed in 0.076268 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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