本帖最后由 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
|