找回密码
 加入
搜索
查看: 9437|回复: 16

[网络通信] QQ登录函数大比拼。(请设定回复观看)

 火.. [复制链接]
发表于 2011-1-22 20:11:11 | 显示全部楼层 |阅读模式
本帖最后由 gzh888666 于 2011-1-22 20:31 编辑

每天都要使用的QQ,又谁能想到写个自定义函数呢?也许你会认为是浪费时间,我还真的写不出来这个!
;QQ登录函数(纯提供给大家练手题目,无实际意义,勿喷!最好设定回复观看吧,顺便学习!)
        ;$path=QQ的路径
        ;$Username=用户名
        ;$Password=密码
        ;$Remember=是否选中记住密码:0为否,1为是。默认为0。(可选)
        ;$Autologin=是否选中自动登录:0为否,1为是。默认为0。(可选)
        ;$Status=登录状态:0=我在线上,1=Q我吧,2=离开,3=忙碌,4=请勿打扰,5=隐身 。默认为0。(可选)
        ;$Agent=网络代理:
        ;0=不使用代理 1=使用浏览器设置。
        ;代理填写格式:类型/IP:端口 如:http/211.139.10.173:80 或 SOCKS5/211.139.10.173:1080
        ;默认为0。(可选)
        ;$Servers=登录服务器: 0=不使用类型,填写 UDP 或 TCP。默认为0。(可选)
 _QQLogin($path,$Username,$Password,$Remember,$Autologin,$Status,$Agent,$Servers)

评分

参与人数 1金钱 +20 收起 理由
pusofalse + 20 好题。

查看全部评分

发表于 2011-1-22 20:33:07 | 显示全部楼层
好题目,函数原型很强大,可惜不会。
发表于 2011-1-23 00:55:38 | 显示全部楼层
回复 1# gzh888666

我很喜欢这样的题目
随便写了一个,没有达到要求

_QQLogin("C:\Program Files\Tencent\QQ\Bin\QQ.exe", '123456789', '111aaabbb')

_QQLogin("C:\Program Files\Tencent\QQ\Bin\QQ.exe", '123456789', '111aaabbb', '', 5)


;$path=QQ的路径
;=============================================================================================
;$path=QQ的路径
;$Username=用户名
;$Password=密码
;$Remember=是否选中记住密码:0为否,1为是。默认为0。(可选)
;$Status=登录状态:0=我在线上,1=Q我吧,2=离开,3=忙碌,4=请勿打扰,5=隐身 。默认为0。(可选)
;$Agnt=网络代理:
;0=不使用代理 1=使用浏览器设置。
;=============================================================================================
Func _QQLogin($path, $Username, $Password, $Remember = 0, $Status = 0, $Agent = 0)
        Opt("WinWaitDelay", 100)
        Opt("WinDetectHiddenText", 1)
        Opt("MouseCoordMode", 0)
        If Not ProcessExists("QQ.exe") Then
                Run($path)
                _WinWaitActivate("QQ2010", '')
                MouseClick("left", 188, 196, 1)
                MouseClick("left", 113, 196, 1);取消记住密码和自动登录
                ControlClick("QQ2010", "", "[CLASS:ATL:30A561F0]", "left", 1);选中帐号
                Send("{DEL}");清除帐号
                Send($Username);输入帐号
                ControlClick("QQ2010", "", "Edit1", "left", 1);选中密码
                Send($Password, 1);输入密码
                If $Agent = 0 Then
                        MouseClick("left", 52, 226, 1)
                        _WinWaitActivate("设置", "")
                        MouseClick("left", 164, 136, 1)
                        MouseClick("left", 146, 156, 1)
                        MouseClick("left", 340, 360, 1);不使用代理
                Else
                        MouseClick("left", 61, 224, 1)
                        _WinWaitActivate("设置", "")
                        MouseClick("left", 111, 137, 1)
                        MouseClick("left", 113, 213, 1)
                        MouseClick("left", 341, 354, 1);使用浏览器设置
                EndIf
                _WinWaitActivate("QQ2010", '')
                If $Status = 5 Then
                        MouseClick("left", 82, 193, 1)
                        MouseClick("left", 86, 341, 1);隐身登陆
                ElseIf $Status = 4 Then
                        MouseClick("left", 82, 195, 1)
                        MouseClick("left", 119, 312, 1);请勿打扰
                ElseIf $Status = 3 Then
                        MouseClick("left", 84, 194, 1)
                        MouseClick("left", 118, 297, 1);忙碌
                ElseIf $Status = 2 Then
                        MouseClick("left", 74, 193, 1)
                        MouseClick("left", 109, 273, 1);离开
                ElseIf $Status = 1 Then
                        MouseClick("left", 85, 191, 1)
                        MouseClick("left", 114, 252, 1);Q我吧
                Else
                        MouseClick("left", 84, 196, 1)
                        MouseClick("left", 88, 216, 1);我在线上
                EndIf
                If $Remember = 0 Then
                        MouseClick("left", 188, 196, 1)
                        MouseClick("left", 113, 196, 1);取消记住密码和自动登录
                Else
                        MouseClick("left", 188, 196, 1)
                        MouseClick("left", 113, 196, 2);记住密码
                EndIf
                MouseClick("left", 295, 228, 1);登录
        Else
                Exit
        EndIf
EndFunc   ;==>_QQLogin

Func _WinWaitActivate($title, $text, $timeout = 0)
        WinWait($title, $text, $timeout)
        WinActivate($title, $text)
        WinWaitActive($title, $text, $timeout)
EndFunc   ;==>_WinWaitActivate
发表于 2011-1-23 01:25:39 | 显示全部楼层
很难啊,继续围观
 楼主| 发表于 2011-1-23 17:52:54 | 显示全部楼层
回复 3# lixiaolong


   看了一下, 非常不错,有几点看法,首先抓标题QQ2010肯定不行!最好的办法是RUN返回PID,用PID返回窗体句柄,使用这个句柄,否则已经登录的QQ标题也是QQ2010,使用MouseClick 的时候,先将窗口置顶比较好,前3个函数比较好实现。因为用户框,和密码框是可以抓到控件的,;$Remember;$Autologin这不好判断打开的时候是否已经选中了, $Status用MouseClick 还行,不知道注册表能控制这个不能,没有这个经验。$Agent和$Servers还没有研究!
发表于 2011-1-23 20:34:25 | 显示全部楼层
对QQ无爱的飘过。
发表于 2011-1-26 13:03:52 | 显示全部楼层
只有头,没有内容?
发表于 2011-1-26 16:30:30 | 显示全部楼层
万恶的腾讯取消了命令行方式登陆
发表于 2011-1-28 14:21:12 | 显示全部楼层
有难度,有深度,有用途,不会
发表于 2011-1-28 17:24:25 | 显示全部楼层
我想下载。如何...
发表于 2011-1-28 20:39:06 | 显示全部楼层
观望高手出现。。
发表于 2011-1-28 23:56:03 | 显示全部楼层
这个要不要和腾讯协商,我们可不是360啊
发表于 2011-1-29 00:51:27 | 显示全部楼层
qq 无爱..
发表于 2011-1-29 09:52:57 | 显示全部楼层
发表于 2011-1-29 14:09:35 | 显示全部楼层
不错。论坛的高亮显示也很好。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 16:44 , Processed in 0.084177 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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