有请zldfsz同学 ,有问题请教!(学习中)
本帖最后由 apoorman1986 于 2012-3-19 18:51 编辑这几天在推敲zldfsz 大师写的2012自动登录代码。
有句代码看不懂。
$usr = "88888888";QQ号
$pwd = "88888888";密码
#include <Process.au3>
$ExistEdit1=0
Run(StringRegExpReplace(RegRead('HKEY_CLASSES_ROOT\Tencent\DefaultIcon', ''), '[^\\]+$', '') & 'QQ.exe')
WinWait("QQ2012")
$Newusr = StringRegExp($usr, "(.)", 3)
$Newpwd = StringRegExp($pwd, "(.)", 3)
Do
$list=WinList('')
For $u=1 To $list
$LPID=WinGetProcess($list[$u])
If _ProcessGetName($LPID)="QQ.exe" Then
$POS=WinGetPos($list[$u])
$ExistEdit1=ControlSend($list[$u], "", "Edit1", "+{tab}")
If $ExistEdit1 Then
Local $QQ=[$list[$u],$POS,$POS,$POS,$POS]
ExitLoop
EndIf
EndIf
Next
Sleep(300)
Until $ExistEdit1
Do
Sleep(300)
Until ControlSend($QQ, "", "Edit1", "+{tab}")
For $n = 0 To StringLen($usr) - 1
ControlSend($QQ, "", "", $Newusr[$n],1)
Next
For $n = 0 To 15
ControlSend($QQ, "", "Edit1", "{BS}")
Next
For $n = 0 To StringLen($pwd) - 1
ControlSend($QQ, "", "Edit1", $Newpwd[$n],1)
Next
ControlSend($QQ, "", "Edit1", "{enter}")
最后的几个循环,有一个
For $n = 0 To 15
ControlSend($QQ, "", "Edit1", "{BS}")
Next
整个循环都没有用过$n,这个循环何解? 回复 1# apoorman1986
真是折煞我也,先把标题改了吧,这大师我可承受不起,再说你这标题也不符合发帖规则 {:face (113):}zldfsz 大师
还在寺庙 念经啊 回复 2# zldfsz
这是水区,随便聊聊,反而没多少人看到{:face (355):} 水区也得符合发帖规则,至少把标题改下 {:face (361):}已改好回复 5# zldfsz For $n = 0 To 15
ControlSend($QQ, "", "Edit1", "{BS}")
Next
这个的作用是在密码输入框敲16次退格键
看起来好像没什么作用
但是不加上有可能会出问题,什么情况下会出问题呢,你可以试下:将以上三行注释掉、将qq记住密码登录一次后退出,再用刚才的QQ通过代码登录试试,是不是出错了
所以这三行就是不管有没有记住密码,登录时先删掉密码,再重新输入 回复 7# zldfsz
这句
ControlSend($QQ, "", "Edit1", "{BS}")
怎么没看到有$n在里面?可以省略吗? ControlSend ( "标题", "文本", 控件ID, "字符串" [, 标志] )
这句就是发送退格键,这里的字符串就是 {BS} 退格键(Backspace)
加上For $n = 0 To 15以后就是循环发送16次(因为QQ密码最多16位)。
有谁给你说for循环里必须有循环变量吗 本帖最后由 apoorman1986 于 2012-3-19 19:23 编辑
{:face (88):}回复 9# zldfsz
原来如此!多谢zldfsz兄从百忙中抽出时间回答我的菜鸟问题,谢谢!谢谢!
我习惯性for $i
然后把$i嵌在函数中~~!!{:face (207):} 收藏了,感谢分享 原来如此!多谢 叫"大湿"好听些还是
页:
[1]