找回密码
 加入
搜索
楼主: adasir

如何实现获取QQ昵称。

 火... [复制链接]
发表于 2010-6-16 17:34:53 | 显示全部楼层
正则的学习一下
发表于 2010-6-16 18:23:33 | 显示全部楼层
好东西要标记一下!~ 再膜拜一下!~!~!~
发表于 2010-6-16 23:54:51 | 显示全部楼层
再次改了下对无昵称的用户
写成配置文件部份可根据自己所需修改循环读或直接读最终Date值都可以
#include <GUIToolbar.au3>
#NoTrayIcon
$g_szVersion = "jianshechengxu"
If WinExists($g_szVersion) Then
        ;MsgBox(16, "温馨提示", "程序已运行",3)
        Exit 
EndIf

AutoItWinSetTitle($g_szVersion)
        
Dim $qqini=@ScriptDir&"\Temp.ini"
If FileExists($qqini) Then FileDelete($qqini)
If Not ProcessExists("qq.exe") Then
IniWrite($qqini,"Temp","Number","0")
IniWrite($qqini,"Temp","date","查询失败")
Exit
EndIf
QQInfo()
$var=IniReadSectionNames($qqini)
IniWrite($qqini,"Temp","Number",$var[0])
If $var[0]=1 Then
        $fg=StringSplit(IniRead($qqini,"1","1",""),"<~!@#$>",1)
                If $fg[2]="" Then
                        IniWrite($qqini,"1","1",$fg[1]&"<~!@#$>空昵称")
                EndIf
Else        
        For $i=1 To $var[0]
                $fg=StringSplit(IniRead($qqini,$var[$i],$var[$i],""),"<~!@#$>",1)
                        If $fg[2]="" Then
                                IniWrite($qqini,$var[$i],$var[$i],$fg[1]&"<~!@#$>空昵称")
                        EndIf
        Next
EndIf
;#cs
For $i=1 To $var[0]
         $j = IniRead($qqini, "Temp","date","")
         If $i = 1 Then IniWrite($qqini, "Temp","date", IniRead($qqini,$var[$i],$var[$i],""))
        If $i > 1 Then IniWrite($qqini, "Temp","date", $j & "[~!@#$]" &IniRead($qqini,$var[$i],$var[$i],""))
Next
For $d =$var[0] To 1 Step -1
        IniDelete($qqini,$var[$d])
Next
;#ce
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]
                        IniWrite($qqini,$info[0][0],$info[0][0],$sR[1]&"<~!@#$>"&$sR[0])
                 EndIf
        Next
        Return $info
EndFunc   ;==>QQInfo
发表于 2010-7-4 18:13:19 | 显示全部楼层
先留个位置,回家再详细测试。
发表于 2010-7-5 06:30:57 | 显示全部楼层
学习一下...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 21:14 , Processed in 0.072176 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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