找回密码
 加入
搜索
查看: 8150|回复: 34

如何实现获取QQ昵称。

 火... [复制链接]
发表于 2010-6-2 10:55:02 | 显示全部楼层 |阅读模式
本帖最后由 adasir 于 2010-6-2 20:17 编辑

在网上看到破帽的程序有办法实现,想请教下是如何实现的。
发表于 2010-6-2 12:18:02 | 显示全部楼层
#include <Array.au3>
#include <GUIToolbar.au3>
_ArrayDisplay(QQInfo())
Func QQInfo()
        Local $info[1][2], $sR, $i, $i_C, $txt
        Local $hTb = ControlGetHandle('[class:Shell_TrayWnd]', '', '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\:(.+)\((\d{5,})\)', 3)
                If Not @error Then
                        $info[0][0] += 1
                        ReDim $info[$info[0][0] + 1][2]
                        $info[$info[0][0]][0] = $sR[1]
                        $info[$info[0][0]][1] = $sR[0]
                EndIf
        Next
        Return $info
EndFunc   ;==>QQInfo

评分

参与人数 2金钱 +30 贡献 +1 收起 理由
hzxymkb + 30 厉害!
lynfr8 + 1 厉害

查看全部评分

发表于 2010-6-2 17:05:45 | 显示全部楼层
A版。我在3.3.6.1下运行出错了。。。。
发表于 2010-6-2 20:04:50 | 显示全部楼层
回复 3# boyhong


    直接运行即可~ 如果在编辑器里面运行提示错误可选择继续运行,也可将上面第3行改为以下两行

$qq = QQInfo()
_ArrayDisplay($qq)
 楼主| 发表于 2010-6-2 20:16:56 | 显示全部楼层
非常好,效果不错
发表于 2010-6-14 23:38:27 | 显示全部楼层
回复 2# afan
我试了下只能读取一个QQ,多登一个不行!有法改进么?
发表于 2010-6-14 23:48:55 | 显示全部楼层
回复  afan
我试了下只能读取一个QQ,多登一个不行!有法改进么?
jycel 发表于 2010-6-14 23:38


实测无论登录几个都可读取
发表于 2010-6-14 23:53:09 | 显示全部楼层
不是吧?我试怎么只能读一个?人品啊!(忘了我是2010版的,楼上用的是什么版本?)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-6-14 23:57:04 | 显示全部楼层
回复 7# lynfr8
你用的什么版本QQ
我把刚才读取出来的了QQ关了运行结果什么也没读出来后面登的那个没读取怪了
发表于 2010-6-14 23:59:31 | 显示全部楼层


2010beta3

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-6-15 00:00:35 | 显示全部楼层
奇怪了,我现在登陆三个,能读二个了,始终有一个读到,不知道是不是跟昵称原因有关系
“幸福(*^_^*)”这个昵称就读不到~还有就是,有时运行能读二个,有时只能读一个
发表于 2010-6-15 00:03:51 | 显示全部楼层
本帖最后由 jycel 于 2010-6-15 00:06 编辑

显示QQ号的就能读出来,主显示账号用了非QQ号就读不到!
比如jycel@qq.com


……再次测试我改转去后又能读得到晕!明天研究下!
发表于 2010-6-15 00:10:38 | 显示全部楼层
本帖最后由 afan 于 2010-6-15 00:53 编辑

回复 11# jycel


    估计是昵称字符含“()”及主显账号为邮箱地址的原因,解决方法在楼下
发表于 2010-6-15 00:48:41 | 显示全部楼层
本帖最后由 afan 于 2010-8-31 16:06 编辑
#include <Array.au3>
#include <GUIToolbar.au3>
$qq = QQInfo()
_ArrayDisplay($qq)

Func QQInfo()
        Local $info[1][2], $sR, $i, $i_C, $txt
        Local $hTb = ControlGetHandle('[class:Shell_TrayWnd]', '', '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[0][0] += 1
                        ReDim $info[$info[0][0] + 1][2]
                        $info[$info[0][0]][0] = $sR[1]
                        $info[$info[0][0]][1] = $sR[0]
                EndIf
        Next
        Return $info
EndFunc   ;==>QQInfo
以上重新修改了下,解决昵称字符含“()”及主显账号为邮箱地址的问题。

以下解决 itljl 提出的 2010版无法获取的问题:
#include <Array.au3>
#include <GUIToolbar.au3>
$qq = QQInfo()
_ArrayDisplay($qq)

Func QQInfo()
        Local $info[1][2], $sR, $i, $i_C, $txt
        Local $hTb = ControlGetHandle('[class:Shell_TrayWnd]', '', '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[0][0] += 1
                        ReDim $info[$info[0][0] + 1][2]
                        $info[$info[0][0]][0] = $sR[1]
                        $info[$info[0][0]][1] = $sR[0]
                EndIf
        Next
        Return $info
EndFunc   ;==>QQInfo

评分

参与人数 2金钱 +70 贡献 +3 收起 理由
hzxymkb + 20 太厉害了!
jycel + 50 + 3 学习了!呵呵!

查看全部评分

发表于 2010-6-15 10:05:21 | 显示全部楼层
好东西。 谢谢了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 18:36 , Processed in 0.093304 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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