|
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. |
评分
-
查看全部评分
|