大家一直对获取QQ聊天记录很感兴趣,今天我就来讲一讲使用微软专门针对盲人做的IAccessible接口来讲讲。

1.使用IAccessible接口.使用以下模块

Option Explicit
'=======================================================================================================
'//功能:枚举值
'//lHwnd=句柄
'//sFindName=查找的元素名称
'//lRole=规则
'Private Sub Command1_Click()
'    Call GetElement(&H9802B2, "", ROLE_TEXT)
'End Sub
'=======================================================================================================

Public Declare Function AccessibleObjectFromWindow Lib "oleacc" ( _
                                                            ByVal hwnd As Long, _
                                                            ByVal dwId As Long, _
                                                            riid As tGUID, _
                                                            ppvObject As Object) As Long
Public Declare Function AccessibleChildren Lib "oleacc" ( _
                                                            ByVal paccContainer As IAccessible, _
                                                            ByVal iChildStart As Long, _
                                                            ByVal cChildren As Long, _
                                                            rgvarChildren As Variant, _
                                                            pcObtained As Long) As Long

Type tGUID
      lData1            As Long
      nData2            As Integer
      nData3            As Integer
      abytData4(0 To 7) As Byte
End Type

Private Const S_OK = &H0
Public Const ROLE_TEXT = &H2A&              '文本
Public Const ROLE_COMBOBOX = &H2E&          '下拉列表框
Public Const ROLE_MENUITEM = &HC&  '菜单信息
Public Const ROLE_PUSHBUTTON = &H2B& '按钮
Public Const ROLE_APPLICATION = &HE&        '应用程序
'//枚举值
Public Function GetElement(ByVal lHwnd As Long, ByVal sFindName As String, ByVal lRole As Long) As String
        Dim Ob   As IAccessible
        Set Ob = getFormObject(lHwnd)
        If Ob Is Nothing Then
                Exit Function
        End If
        GetElement = getObjectValue(Ob, sFindName, lRole, 0)
End Function
'//根据句柄获取对象IAccessible接口
Public Function getFormObject(ByVal lHandle As Long) As IAccessible
        On Error Resume Next
        Dim i As Integer
        Dim oIA     As IAccessible
        Dim tg      As tGUID
        Dim lReturn As Long
        With tg
                .lData1 = &H618736E0
                .nData2 = &H3C3D
                .nData3 = &H11CF
                .abytData4(0) = &H81
                .abytData4(1) = &HC
                .abytData4(2) = &H0
                .abytData4(3) = &HAA
                .abytData4(4) = &H0
                .abytData4(5) = &H38
                .abytData4(6) = &H9B
                .abytData4(7) = &H71
        End With
        lReturn = AccessibleObjectFromWindow(lHandle, 0, tg, oIA)
        If lReturn <> S_OK Then Exit Function
        Set getFormObject = oIA
        Set oIA = Nothing
End Function

Public Function getObjectValue(ByVal oIA As IAccessible, ByVal sName As String, ByVal lRole As Long, ByVal lLevel As Long) As String
        Dim oNewIA       As IAccessible
        Dim lStart      As Long
        Dim lHowMany    As Long
        Dim avKids()    As Variant
        Dim lGotHowMany As Long
        Dim lReturn     As Long
        Dim lCurRole    As Long
        Dim sCurName    As String
        Dim i           As Integer
        On Error Resume Next
        lStart = 0
        lHowMany = oIA.accChildCount
        ReDim avKids(lHowMany - 1) As Variant
        lGotHowMany = 0
     
        lReturn = AccessibleChildren(oIA, lStart, lHowMany, avKids(0), lGotHowMany)
        On Error Resume Next

For i = 0 To lGotHowMany - 1
                If IsObject(avKids(i)) = True Then
                        Err.Clear
                        sCurName = avKids(i).accName
                        lCurRole = CLng(avKids(i).accRole)
                        getObjectValue = avKids(i).accValue
                        If InStr(sCurName, " : ") <> 0 Then
                          ‘在此处判断 获取的内容信息。
                        Exit For
                        End If
                       
                        End If
                       
                        If avKids(i).accChildCount > 0 Then
                                Set oNewIA = avKids(i)
                                getObjectValue = getObjectValue(oNewIA, sName, lRole, lLevel + 1)
                        End If
                Else
                        Err.Clear
                        sCurName = oIA.accName(avKids(i))
                        lCurRole = oIA.accRole(avKids(i))
                        getObjectValue = oIA.accValue(avKids(i))
                                If InStr(sCurName, " : ") <> 0 Then
                          ‘在此处判断 获取的内容信息。
                        Exit For
                        End If
                        End If
                       
                End If
        Next i
        Set oNewIA = Nothing
        Erase avKids()
End Function

转载于:https://www.cnblogs.com/XTHH/p/6144915.html

vb 使用IAccessible接口获取QQ聊天记录相关推荐

  1. php 获取qq头像,自写与收集的一些免费的API接口[获取QQ昵称、头像、QQ秀等等...]...

    1.获取QQ头像 http://q2.qlogo.cn/headimg_dl?dst_uin=QQ号码&spec=100 100 是尺寸,具体可以参考下表 还有其他尺寸为,40 x 40.10 ...

  2. php qq昵称,自写与收集的一些免费的API接口(获取QQ昵称、头像、QQ秀等等...)...

    1.获取QQ头像 http://q2.qlogo.cn/headimg_dl?dst_uin=QQ号码&spec=100 100 是尺寸,具体可以参考下表 还有其他尺寸为,40 x 40.10 ...

  3. php 获取qq头像,免费的API接口推荐(获取QQ昵称、头像、QQ秀等等)

    1.获取QQ头像 http://q2.qlogo.cn/headimg_dl?dst_uin=QQ号码&spec=100 100 是尺寸,具体可以参考下表 还有其他尺寸为,40 x 40.10 ...

  4. 通过QQ音乐接口获取数据+播放源

    最新QQAPI接口[QQ 音乐API koa2全接口实现](https://blog.csdn.net/ZC_XY/article/details/90813351) Github - program ...

  5. Python uiautomation使用---自动获取QQ群聊天记录

    使用uiautomation获取qq群聊天记录,后续可以拓展到消息自动回复.本章只简单介绍自动获取聊天记录,代码如下: import uiautomation as auto from time im ...

  6. qq好友列表获取,利用curl 模拟获取qq好友列表获取接口

    qq好友列表获取,利用curl 模拟获取qq好友列表获取接口 代码如下: //模拟浏览器查找好友列表$url = "http://cgi.find.qq.com/qqfind/buddy/s ...

  7. 基于Vue移动音乐webapp跨域获取QQ音乐歌单接口

    最近看了一个vue移动音乐webapp教程,老师是一个来自滴滴公司的名为黄轶的前端大神,之前学习了他的一个基于vue仿饿了么webapp的初级教程,感觉非常好,十分适合新手,但是那个教程的数据都是前端 ...

  8. 转:基于Vue移动音乐web app跨域获取QQ音乐歌单接口教程

    最近看了一个vue移动音乐webapp教程,老师是一个来自滴滴公司的名为黄轶的前端大神,之前学习了他的一个基于vue仿饿了么webapp的初级教程,感觉非常好,十分适合新手,但是那个教程的数据都是前端 ...

  9. 最新获取 QQ头像 和 昵称接口

    网上找来的测试可用... 获取QQ头像 http://q2.qlogo.cn/headimg_dl?bs=QQ号&dst_uin=QQ号&dst_uin=QQ号&;dst_ui ...

最新文章

  1. 2022-2028年中国羧基丁腈胶乳行业市场发展调研及投资前景分析报告
  2. python 基本数据类型之字符串功能
  3. Java面试题整理,docker可视化监控工具
  4. 软件安装(JDK+MySQL+TOMCAT)
  5. Python ord 函数 - Python零基础入门教程
  6. gethours_日期getHours()方法以及JavaScript中的示例
  7. eq值 推荐算法_利用 SVD 实现协同过滤推荐算法
  8. Python类方法和静态方法
  9. hibernate批量上传
  10. 关于私募基金高水位业绩报酬计提的N种方式!
  11. Python 画数学函数图像 matplotlib.pyplot
  12. php paypal ipn返回验证,Paypal IPN检测退款,PHP
  13. 收集的一些:MAC苹果电脑安装vmware的序列号
  14. linux 小度wifi,树莓派2小度wifi(MT7601U)驱动
  15. pdf、markdown、docx文件预览
  16. py交易----实验吧
  17. 安卓期末大作业——图书信息管理系统
  18. 了解《诗歌生成》必看的6篇论文【附打包下载地址】
  19. 【随笔记】Deepin20 安装docker
  20. (持续更新)Ubuntu22.04双系统的安装、扩容、重装及配置

热门文章

  1. 线性代数学习笔记——第二十三讲——空间直角坐标系
  2. 关于Microsoft Virtual WiFi Miniport Adapter的添加删除
  3. 已知分布函数求概率密度例题_初二一次函数知识点及做题思路解析,一次函数不好的同学看一看...
  4. mysql参数之skip_networking
  5. 模糊聚类分析和模式识别
  6. 网刻(批量部署瘦客户端)
  7. 什么是云平台,云平台主要能干什么?
  8. artset下载_art set
  9. 英雄联盟CG《安妮:从前》的美术创作分享
  10. 用TRW改字体一点心得