balancebq 发表于 2010-5-26 23:49:20

依次登录5个QQ2010,下一个QQ的“登录界面”该如何锁定?

QQ2010的版本比较奇怪啊,登录界面(输入账号密码的)和主界面(有好友的)是同一个对象Window("QQ2010")
需求是依次登录5个QQ(账号为ABCDE),检查点暂时不加。
第一个A登录界面成功登录了,有了一个A主界面。然后脚本运行qq.exe,出来一个B登录界面,按理来说该输入账号密码吧,可是对象仍然锁定在上一个A的主界面上,以至于没法从B的登录界面进行下一步。
该怎么从A的主界面切换出去,锁定到B的登录界面呢?


脚本如下:
''''''1。启动QQ.EXE并激活登录页面
SystemUtil.Run "C:\Program Files\Tencent\QQ\Bin\QQ.exe","","C:\Program Files\Tencent\QQ\Bin\","open"
wait(3)
Window("QQ2010").Activate
'''''''''2。依次输入QQ号,密码,已参数化
Window("QQ2010").WinObject("858758933").Type DataTable("name", dtGlobalSheet)
Window("QQ2010").WinObject("858758933").TypemicTab
Window("QQ2010").WinEdit("Edit").Type DataTable("pwd", dtGlobalSheet)
‘’‘’‘’‘’‘3。按几次tab键后,按回车登录
For i=1 to 5
Window("QQ2010").TypemicTab
Next
Window("QQ2010").TypemicReturn

曾经尝试着在A的主界面最小化Window("QQ2010").Minimize,结果A主界面不是缩到托盘,缩到左下角去了,照样锁定,没成功
曾经尝试着用句柄方法,获取当前对象的句柄属性,没成功
加在步骤1之后
‘’‘’‘’‘
v=Window("QQ2010").GetROProperty("hwnd")
Window("hwnd:=" & v).Activate

[ 本帖最后由 balancebq 于 2010-5-26 23:55 编辑 ]

xiaoshancom 发表于 2010-5-27 00:50:08

:)   原以为QQ的密码是不能正确输入的
看来得试试了

leohyf 发表于 2010-5-29 22:59:31

QQ程序打开,焦点默认是在密码输入框上,这时候可以用shift+tab的,不需要用for循环转一圈回来。

xiaoshancom 发表于 2010-6-14 15:22:12

回复 3# 的帖子

QQ密码输入框内的安全控件对QQ登陆窗口内的消息循环进行了拦截,原以为它对send key也进行了限制,因为有次发现输入密码过快会导致有些对应的密码字符未被输入进去。

对窗口消息和OS底层不太接触的人可能很难理解到这层担忧,但实验可以了。
页: [1]
查看完整版本: 依次登录5个QQ2010,下一个QQ的“登录界面”该如何锁定?