a000000 发表于 2011-1-19 15:17:12

关于qq登录框




想开机让qq自动登录,于是模拟键盘自动输入

Run("qq.exe")
WinWait("QQ2010")
Send("qq账号")
sleep(600)
Send("{tab}")
Send("qq密码")
Sleep(1800)
Send("{ENTER}")


可是这样不行,不能输入,是不是qq有个控件阻止程序输入,怎么处理?多谢啦

gzh888666 发表于 2011-1-19 15:27:02

本帖最后由 gzh888666 于 2011-1-19 15:29 编辑

首先你没有激活窗口,
然后就是默认的焦点好像不是用户名控件!Run ("S:\QQ\Bin\QQ.exe")
Sleep(100)
If WinWaitActive("","") Then
        WinActivate("","")
        Sleep(10)
        ControlCommand("QQ2010","","Edit1","Check")
        Sleep(1000)
Send("{TaB 8}")
Sleep(100)
Send("{del 9}")
Sleep(100)
Send("你的QQ号码")
Sleep(10)
Send("{tab}")
    ControlCommand("QQ2010","","Edit1","Check")
        Sleep(500)

        Send ("你的QQ密码")
        Sleep(100)
        Send ("{TaB}")
        Sleep(100)
        Send ("{ENTER}")
        Sleep(100)
        Send ("{DOWN 6}")
        Sleep(300)
        Send ("{ENTER}")
        Sleep(100)
        Send ("{TaB}")
        Sleep(500)
        Send ("{ENTER}")

       
EndIf

a000000 发表于 2011-1-19 15:28:11

窗口激活的条件下也不行,这个图我就是随便截图的

gzh888666 发表于 2011-1-19 15:30:20

刚试了一下,这样可以

a000000 发表于 2011-1-19 15:37:29

谢谢2楼,看样子就是我太菜,别的都行,就是qq这个,开始用了ControlSend 也不行,多谢二楼了,我好好研究下您这个源码,很多个地方我都看不明白,我太菜了,呵呵

5i5wei 发表于 2011-1-19 15:39:36

{:face (361):}{:face (361):}

m765555 发表于 2011-1-19 16:32:19

有点意思哈,什么都变自动化了,呵呵

lixiaolong 发表于 2011-1-19 17:03:22

$qq1 = "12345678"
$pw1 = "1111111"
If WinExists("QQ2010", "") Then WinActivate("QQ2010", "")
ControlClick("QQ2010", "", "", "left", 1);选中帐号
Send("{DEL}");清除帐号
Send($qq1);输入帐号
ControlClick("QQ2010", "", "Edit1", "left", 1);选中密码
Send($pw1);输入密码
Send("{enter}");登陆

gzh888666 发表于 2011-1-19 23:54:07

回复 8# lixiaolong

学习了,我还以为抓不到QQ控件呢!汗
还有一个问题想问小龙,怎么设置它登录状态呢?比如隐身

lixiaolong 发表于 2011-1-20 01:22:22

本帖最后由 lixiaolong 于 2011-1-20 11:42 编辑

回复 9# gzh888666

设置状态的控件抓不到.

下面是使用Send实现隐身登陆.
$qq1 = "12345678" ;帐号
$pw1 = "1111111" ;密码
If WinExists("QQ2010", "") Then
        WinActivate("QQ2010", "")
        ControlClick("QQ2010", "", "", "left", 1);选中帐号
        Send("{DEL}");清除帐号
        Send($qq1);输入帐号
        ControlClick("QQ2010", "", "Edit1", "left", 1);选中密码
        Send($pw1, 1);输入密码
        Send("{TAB}");焦点到“状态”
        Send("{ENTER}");打开状态菜单
        Send("{UP}");选择隐身登陆 ;~ Send("{DOWN}");选择我在线上
        Send("{ENTER}");确定
        Send("{TAB}");焦点到“登陆”
        Send("{ENTER}");确定登陆
EndIf

MouseClick实现隐身登陆.
Opt("WinWaitDelay",100)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)

$qq1 = "12345678" ;帐号
$pw1 = "1111111" ;密码
Run("C:\Program Files\Tencent\QQ\Bin\QQ.exe")

While 1
If WinExists("QQ2010", "") Then
       WinActivate("QQ2010","")
      ControlClick("QQ2010", "", "", "left", 1);选中帐号
      Send("{DEL}");清除帐号
      Send($qq1);输入帐号
      ControlClick("QQ2010", "", "Edit1", "left", 1);选中密码
      Send($pw1, 1);输入密码
      MouseClick("left",85,191,1);打开状态菜单
                MouseClick("left",88,344,1);选择隐身                       
                MouseClick("left",295,228,1);按登陆按钮
                ExitLoop
        EndIf
WEnd

553670595 发表于 2011-1-20 16:04:17

呵呵,学习了。。

leon460 发表于 2011-1-26 13:04:02

试了下以上代码,可以成功,,牛人,,谢谢
页: [1]
查看完整版本: 关于qq登录框