5735988 发表于 2012-3-21 01:34:45

QQ2012有没有办法处理判断QQ是否在线,就是成功登录

QQ2012有没有办法处理判断QQ是否在线,就是成功登录。

5735988 发表于 2012-3-21 01:57:07

#include <Array.au3>
#include <GUIToolbar.au3>
$qq = QQInfo()
_ArrayDisplay($qq)

Func QQInfo()
      Local $info, $sR, $i, $i_C, $txt
      Local $hTb = ControlGetHandle('', '', 'ToolbarWindow321')
      For $i = 0 To _GUICtrlToolbar_ButtonCount($hTb) - 1
                $i_C = _GUICtrlToolbar_IndexToCommand($hTb, $i)
                $txt = _GUICtrlToolbar_GetButtonText($hTb, $i_C)
                $sR = StringRegExp($txt, '^QQ\:\h?(.+)\((\d{5,}|.+@.+)\)', 3)
                If Not @error Then
                        $info += 1
                        ReDim $info[$info + 1]
                        $info[$info] = $sR
                        $info[$info] = $sR
                EndIf
      Next
      Return $info
EndFunc   ;==>QQInfo


找了一下 AFAN的 代码可以用,但是我要用来调用进别的程序,能否不用_ArrayDisplay 来显示

5735988 发表于 2012-3-21 01:57:57

能否不用_ArrayDisplay 来显示
因为读取到的QQ号,要调用到别的地方

5735988 发表于 2012-3-21 01:59:37

哎,如果登录的是QQ图标,就是企鹅的时候能用,一有别的消息来的时候,就不行了,放弃

mjpop 发表于 2012-3-21 02:01:42

做自动安装啊,应该可以

lixiaolong 发表于 2012-3-21 10:19:33

改了一点.#include <GUIToolbar.au3>
$qq = QQInfo(); 昵称
MsgBox(0, '', $qq)

$qq = QQInfo(1); 帐号
MsgBox(0, '', $qq)

Func QQInfo($frag = 0)
        Local $info, $sR, $i, $i_C, $txt
        Local $hTb = ControlGetHandle('', '', 'ToolbarWindow321')
        For $i = 0 To _GUICtrlToolbar_ButtonCount($hTb) - 1
                $i_C = _GUICtrlToolbar_IndexToCommand($hTb, $i)
                $txt = _GUICtrlToolbar_GetButtonText($hTb, $i_C)
                $sR = StringRegExp($txt, '^QQ\:\h?(.+)\((\d{5,}|.+@.+)\)', 3)
                If Not @error Then
                        If $frag < UBound($sR) Then
                                $info = $sR[$frag]
                        Else
                                $info = 'error'
                        EndIf
                EndIf
        Next
        Return $info
EndFunc   ;==>QQInfo
回复 3# 5735988

lixiaolong 发表于 2012-3-21 10:25:28

回复 3# 5735988

也可以用2楼的代码,这样获取就可以了.
$qq = QQInfo()
MsgBox(0, '', $qq);昵称
MsgBox(0, '', $qq);帐号

zldfsz 发表于 2012-3-21 11:13:55

请问是判断一个QQ还是多个QQ呢?

zch11230 发表于 2012-3-21 13:16:33

原来是读的托盘 开始以为是读的面板上的控件 激动了一把 因为现在像QQ之类的好多软件都读不到控件信息了 一些操作都是用的模拟鼠标点击或send实现,运行的时候都不能操作键鼠了。

suiyefeng 发表于 2012-3-21 18:08:40

如果不是要查询自己电脑上是否登录了..可以使用这个
http://webpresence.qq.com/getonline?Type=1&QQ号:
这个可以查看是否在线

mjpop 发表于 2012-3-21 21:41:34

#include <Array.au3>
#include <GUIToolbar.au3>
$qq = QQInfo()
_ArrayDisplay($qq)

Func QQInfo()
      Local $info, $sR, $i, $i_C, $txt
      Local $hTb = ControlGetHandle('', '', 'ToolbarWindow321')
      For $i = 0 To _GUICtrlToolbar_ButtonCount($hTb) - 1
                $i_C = _GUICtrlToolbar_IndexToCommand($hTb, $i)
                $txt = _GUICtrlToolbar_GetButtonText($hTb, $i_C)
                $sR = StringRegExp($txt, '^QQ\:\h?(.+)\((\d{5,}|.+@.+)\)', 3)
                If Not @error Then
                        $info += 1
                        ReDim $info[$info + 1]
                        $info[$info] = $sR
                        $info[$info] = $sR
                EndIf
      Next
      Return $info
EndFunc   ;==>QQInfo

这个源代码可以吗?

5735988 发表于 2012-3-22 00:31:23

WinSetState("QQ2012", "", @SW_SHOW)
        Send("^!s")
        Sleep(800)
        $qq = QQInfo(1); 帐号
        If $qq = $QQ_zhanghao Then
        MsgBox(0,0,"登陆成功")
        ExitLoop
    EndIf

5735988 发表于 2012-3-22 00:31:36

先按出消息盒子,在判断了,

5735988 发表于 2012-3-25 23:41:13

回复 8# zldfsz


    判断一个QQ

zldfsz 发表于 2012-3-25 23:54:39

如果单是判断是否成功登录,那倒好判,如果是还要获取QQ号,正如你所说:“一有别的消息来的时候,就不行了”
页: [1] 2
查看完整版本: QQ2012有没有办法处理判断QQ是否在线,就是成功登录