Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

奇想,可不可以获取QQ好友列表

不务实  发表于:2009-07-16 15:07:10  
复制

可不可以判断QQ是否登录,并获取好友列表

 

Top
竹笛 发表于:2009-07-16 15:42:05
有点难,除非QQ公司支持你。因为人家还会隐身,哈哈。

点燃一支烟 发表于:2009-07-16 16:04:24

Option Compare Database
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * 500
End Type

Private Const PROCESS_TERMINATE = &H1 '
Private Const TH32CS_SNAPPROCESS = 2 '


Private Function GetProcessPID(sEXEName As String, Optional ByVal ID As Long = 1) As Long
    Dim hPS As Long, xx As Long
    Dim pe32 As PROCESSENTRY32
    Dim buffer As String * 255, loaded As Boolean
    Dim hand As Long, EXEName As String
    Dim theloop As Long, myID As Long
    hPS = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
    If hPS = -1 Then Exit Function
    pe32.dwSize = Len(pe32)
    theloop = ProcessFirst(hPS, pe32)
    While theloop <> 0 '
        hand = OpenProcess(PROCESS_TERMINATE, True, CLng(pe32.th32ProcessID))
        EXEName = pe32.szExeFile
        myID = pe32.th32ProcessID
        If UCase(Left(EXEName, Len(sEXEName))) = UCase(sEXEName) Then
        xx = xx + 1
            If ID = xx Then
                GetProcessPID = myID
                CloseHandle hPS
                Exit Function
            End If
        End If
        theloop = ProcessNext(hPS, pe32)
    Wend
    CloseHandle hPS
End Function


Private Sub Command0_Click()
  On Error Resume Next
  If GetProcessPID("qq.exe") > 0 Then MsgBox "QQ.exe正在运行"
End Sub

以上是判断本地是否有qq登陆,供满足一下好奇心而已,实际用处不大的,呵呵,你可自己试着玩。至于判断异地人家的qq是否登陆,呵呵,你要弄出来的话,那腾讯公司会跟你好有一拼,彩虹qq都被他们屏蔽了.



不务实 发表于:2009-07-16 16:20:23
不是,我只要获取好友列表中有没有我,如果是我的好友才可打开数据库,不是我的好友的话则清除所有数据,

不务实 发表于:2009-07-16 16:22:08
我只是判断自己的电脑中的QQ,即用ACCESS文件的本人

不务实 发表于:2009-07-16 16:39:11
判断用数据库本人的QQ好友列表中有没有1069509079的号

不务实 发表于:2009-07-17 14:50:50
获取本机QQ好友列表

不务实 发表于:2009-07-17 19:40:37

呵呵

 



点燃一支烟 发表于:2009-07-17 20:48:43
还在琢磨这个问题啊?劝你别去琢磨了,第一:实际意义不大,这样去给定阅读权限没有意义,能解开的照样解开;第二、qq版本一升级,不知道它的好友列表下一个会采取什么样的保存方式(信息对第三方软件加密等等),第三:有这个功夫不如干点别的,呵呵

总记录:8篇  页次:1/1 9 1 :