如何实现获取QQ昵称。
本帖最后由 adasir 于 2010-6-2 20:17 编辑在网上看到破帽的程序有办法实现,想请教下是如何实现的。 #include <Array.au3>
#include <GUIToolbar.au3>
_ArrayDisplay(QQInfo())
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\:(.+)\((\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 A版。我在3.3.6.1下运行出错了。。。。 回复 3# boyhong
直接运行即可~ 如果在编辑器里面运行提示错误可选择继续运行,也可将上面第3行改为以下两行
$qq = QQInfo()
_ArrayDisplay($qq) 非常好,效果不错 回复 2# afan
我试了下只能读取一个QQ,多登一个不行!有法改进么? 回复afan
我试了下只能读取一个QQ,多登一个不行!有法改进么?
jycel 发表于 2010-6-14 23:38 http://www.autoitx.com/images/common/back.gif
实测无论登录几个都可读取 不是吧?我试怎么只能读一个?人品啊!(忘了我是2010版的,楼上用的是什么版本?)
回复 7# lynfr8
你用的什么版本QQ
我把刚才读取出来的了QQ关了运行结果什么也没读出来后面登的那个没读取怪了
2010beta3 奇怪了,我现在登陆三个,能读二个了,始终有一个读到,不知道是不是跟昵称原因有关系
“幸福(*^_^*)”这个昵称就读不到~还有就是,有时运行能读二个,有时只能读一个 本帖最后由 jycel 于 2010-6-15 00:06 编辑
显示QQ号的就能读出来,主显示账号用了非QQ号就读不到!
比如jycel@qq.com
……再次测试我改转去后又能读得到晕!明天研究下! 本帖最后由 afan 于 2010-6-15 00:53 编辑
回复 11# jycel
估计是昵称字符含“()”及主显账号为邮箱地址的原因,解决方法在楼下 本帖最后由 afan 于 2010-8-31 16:06 编辑
#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以上重新修改了下,解决昵称字符含“()”及主显账号为邮箱地址的问题。
以下解决 itljl 提出的 2010版无法获取的问题:
#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 好东西。 谢谢了。