如何使用 IAccessible 在 Firefox 中访问文档的 HTML

2023-12-14

我可以使用以下代码从 Firefox 窗口获取 IAccessible 对象:

Guid guid = new Guid("{618736E0-3C3D-11CF-810C-00AA00389B71}");
object obj = null;
int ret = AccessibleObjectFromWindow(hWnd, 
    (uint) OBJID.WINDOW, ref guid, ref obj);
Accessibility.IAccessible acc = (Accessibility.IAccessible)obj;

但是,我不确定从这里该去哪里。我需要从文档中获取完整的 HTML。我知道 IAccessible.get_accValue() 方法,但我不太确定如何在 Firefox 中使用它。任何帮助将非常感激。


显然您无法使用 IAccessible 获取完整的 HTML 源代码。我发现了这个,但它在 FF3.5 中不起作用:

IServiceProvider *pServProv = NULL;
pAccessible->QueryInterface(IID_IServiceProvider, (void**)&pServProv);
ISimpleDOMNode *pSimpleDOMNode;
if (pServProv) {
  const GUID refguid = {0x0c539790, 0x12e4, 0x11cf, 0xb6, 0x61,
                        0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8};
  HRESULT result = pServProv->QueryService(refguid, IID_ISimpleDOMNode,
                                           (void**)&pSimpleDOMNode);
  if (SUCCEEDED(hresult) && pSimpleDOMNode != NULL) {
    /* This is a Mozilla node! Use special ISimpleDOMNode methods described in
      ISimpleDOMNode.idl. */
  }
}

我还发现了这个,它在 FF3.5 中也不起作用:

HRESULT hr = AccessibleObjectFromWindow(hwnd, OBJID_CLIENT,
      IID_IAccessible, (void**)&pAccessible);
if (SUCCEEDED(hr) && pAccessible != NULL) {
HRESULT hr = pAccessible->QueryInterface(
      IID_ISimpleDOMNode, (void**)&pSimpleDOMNode);
}

我被困住了。 :(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 IAccessible 在 Firefox 中访问文档的 HTML 的相关文章

  • 在 XML 中,带问号的节点叫什么?在 C# 中如何添加它们?

    以下是在 InfoPath 中创建的 XML 文件的示例
  • asp:repeater 折叠表行 - 已更新

    我想知道是否有人对我的问题有创造性的解决方案 我有一个从我的数据库填充的转发器 如下所示
  • C++ STL 映射,std::pair 作为键

    这就是我通过地图定义的方式 std map
  • StackExchange Redis 删除所有以以下开头的键

    我有一个格式的密钥 Error 1 Error 24 Error 32 Using StackExchange Redis 我该怎么办KeyDelete在与格式匹配的所有键上Error 在另一个答案中我看到了 LUA 脚本 EVAL ret
  • 如何获取枚举数作为常量?

    From 枚举中定义的项目总数 https stackoverflow com questions 856154 total number of items defined in an enum 我发现我可以使用以下方法获取枚举数 Enum
  • 处理器关联组 C#

    我使用的是 72 核的 Windows Server 2016 我看到有两组处理器 我的 net 应用程序将使用一个或其他组 我需要能够强制我的应用程序使用我选择的组 我看到下面的代码示例 但我无法使其工作 我可能传递了错误的变量 我希望应
  • 二叉树和快速排序?

    我有一个家庭作业 内容如下 别生气 担心 我是not请你帮我做作业 编写一个程序 通过使用二分查找的快速排序方法对一组数字进行排序 树 推荐的实现是使用递归算法 这是什么意思 到目前为止 这是我的解释 正如我在下面解释的那样 我认为两者都有
  • 有关shared_ptr的竞态条件示例

    为什么没有竞争条件代码片段 https godbolt org z nEYPYqdqK below include
  • 以编程方式更新 Wifi 网络

    我正在尝试创建一个程序 当某个 wifi 网络在范围内时 该程序会连接到该网络 即使已经连接到另一个 wifi 也是如此 我在用着简单Wifi https github com DigiExam simplewifi 基本上效果很好 除了在
  • 如何将 dll 中包含的组件嵌入到 exe 中,以便它可以从内存运行?

    我正在尝试制作一个必须从内存运行的程序 通过Assembly Load bin 如上所述here http www codeproject com Articles 13897 Load an EXE File and Run It fro
  • 如何在单例类和未命名类之间进行选择?

    我会使用这样的单例 Singleton single Singleton instance single gt do it 我会使用这样的未命名类 single do it 我觉得单例模式除了具有可读的错误消息之外 与未命名的类相比没有任何
  • 为什么 xcode IDE 认为 `friend` 是保留字

    我一直在开发一个个人项目 并在我创建的新类中包含以下代码 property readonly getter isFriend BOOL friend 它似乎没有任何问题 当我构建它时 它可以编译得很好 但是当我们在xcode IDE看起来像
  • 在 C++ 中,为什么 const 也可以工作时编译器选择非常量函数? [复制]

    这个问题在这里已经有答案了 例如 假设我有一堂课 class Foo public std string Name m maybe modified true return m name const std string Name cons
  • 将两个垂直滚动条相互绑定

    我在控件中有两个 TextBox 并且它们都有两个 VerticalScrollBar 我想在它们之间绑定 VerticalScrollBars 如果一个向上 第二个也会向上等等 如果可以的话我该怎么做 Thanks 不是真正的绑定 但它有
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 大小为 k 的非连续子序列的最大值的最小值

    在开始之前 我希望这个问题不是重复的 我发现了几个类似的问题 但它们似乎都没有描述完全相同的问题 但如果它是重复的 我会很高兴看到一个解决方案 即使它与我的算法不同 我一直在尝试回答这个问题 https stackoverflow com
  • 如何使用 itextsharp 更改 PDF 公式的按钮图标?

    我目前正在尝试使用 itextsharp 填写预定义的表单 除了添加图像之外 一切正常 这之前已经在 Adob e 的 FDF 工具包中运行过 该工具包已编译为 NET 1 1 这不再适用于 NET 4 0 我改用了 itextsharp
  • 括号内声明的对象的范围

    如果我声明一个这样的对象 void main myclass objectA anotherclass true true 0 即 我通过直接调用后者的构造函数来创建一个 objectA 和另一个对象 anotherclass anothe
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • 在 C 中运行 setuid 程序的正确方法

    我有一个权限为4750的进程 我的Linux系统中存在两个用户 root 用户和 appz 用户 该进程继承以 appz 用户身份运行的进程管理器的权限 我有两个基本惯例 void do root void int status statu

随机推荐

  • 增加 IE7 中列表框的高度

    我有一个列表框
  • 查找丢失的序列间隙 mysql [重复]

    这个问题在这里已经有答案了 可能的重复 如何在SQL中查找组内序列中的缺失值 我的列的值如下 MAC00006300 MAC00006301 MAC00006302 MAC00006305 LED00006002 LED00006008 A
  • 使用 Thread.sleep() 限制 Libgdx 游戏中的 FPS 不起作用

    我正在使用 libgdx 为 android 开发一个小游戏 并希望将 fps 限制为 30 以节省电池 问题是它不起作用 fps 只是从 60 下降到 56 这是代码部分 位于渲染部分的末尾 System out print nFPS G
  • 如何在 android 中的 Imageview 上制作正弦波?

    我想创建与此类似的图像 可以用XML来完成吗 如果没有 我将如何缩放这样形状的图像 是的 这是可能的 你可以使用vactor drawable for it
  • 更改 Xcode 中的工作目录

    我设法使用 cmake G Xcode 在 Xcode 中运行我的 C 项目 现在我想调试它 因为它提供了很好的 gdb 前端 但是我需要更改执行 gdb 的工作目录 否则它将无法工作 它需要从相对于工作目录路径的文件中读取一些数据 我能做
  • asp.net 母版页以什么顺序执行

    我在我的项目中使用母版页 我想知道母版页和网页的页面加载顺序以及脚本的执行顺序 母版页子控件初始化 首先初始化母版页中包含的所有服务器控件 内容页子控件初始化 初始化内容页中包含的所有服务器控件 母版页初始化 母版页本身被初始化 内容页初始
  • 如何在 OSGi (Apache Felix) 中处理不同的日志记录解决方案

    在 OSGi 中 日志记录前端和实际输出之间是分离的 因此 通过使用日志服务 这并不意味着例如将任何内容写入控制台 这就是一个日志读取服务为 负责 在我当前的运行时 我正在添加org apache felix log它带来了一个 LogRe
  • 是否有 VS Code API 函数可以返回所有打开的文本编辑器及其视图列?

    I got a 功能要求为了我的扩展保存和恢复选项卡为了实现它 我需要能够获得所有 编辑器组 中所有打开的文本编辑器的列表 在 API 1 46 中 可以获得所有可见文本编辑器的列表 每组只有一个文本编辑器 和所有打开的文本文档的列表 与使
  • 为什么Windows服务不调用OnStart方法?

    我创建了一个 Windows 服务应用程序 其中包含OnStart方法 该方法将从中读取路径应用程序配置文件 创建一个对象 然后服务写入该对象的重写ToString 方法到一个文件StreamWriter 当我使用 手动启动此服务 时 这是
  • php三元运算符格式化

    这有效
  • C / C++ 中的关键字重新定义

    我可以在 C 中使用 define 重新定义关键字吗 我在 C 标准中发现了这一点 ISO IEC 14882 1998 和 ISO IEC 14882 2003 17 4 3 1 1 宏名称 lib macro names 2 包含标题的
  • Xaml 中的动态列绑定

    这是之前帖子的后续问题 here 我有一些 标题 信息存储为 Dictionary
  • 每秒更改图片框中的图像 C#

    我正在创建一个 WinForm 应用程序 它用网络摄像头拍摄一个人的照片 现在正在尝试创建倒计时效果 我有 4 张图像想要循环浏览 但事实证明这很难完成 我使用了秒计时器 但所发生的只是应用程序有点滞后 然后显示最后一张图像 有谁知道我如何
  • SetBounds 和 SetBoundsCore 有什么区别

    在 WinForms 中 您可以使用以下命令设置控件的边界SetBounds 或者如果您已经创建了用户控件 则可以覆盖SetBoundsCore 我想知道 他们的做法相同还是有什么不同 首先SetBounds不是虚拟的 因此如果您需要在设置
  • VSCode 仅导航回本地到当前文件?

    VSCode 中是否有一个选项可以限制 向后导航 这样它只会带您返回光标在当前文件中最后一个位置 这是当前的行为 在文件A上 打开方法foo 在文件A上 打开方法栏 关于文件B 打开方法baz 在文件A上 打开方法bor 如果我在 bor
  • 通过匹配键组合两个不相等的数组

    我想将下面的两个数组合并为一个 更具体地说 我想将第二个数组的内容添加到第一个数组中的匹配键 最终数组中的键应该具有两个数组的匹配键的内容 Array 123456789 404045862944400 gt 192 123456789 4
  • Chef apt_repository 开始失败并出现 SSL 验证错误

    从过去 2 天开始 我们开始看到与 apt repository 资源相关的 Chef 执行失败 厨师 客户执行也遇到了类似的失败 主厨独奏版本 12 19 36 操作系统 Ubuntu 14 中的 Ubuntu v18 请参阅 Chef
  • JavaScript 会成为一种“正确的”基于类的语言吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我指的是 MDN 关于 JavaScript 的 未来保留字 的文章 用于新的严格模式 https developer mozilla org en US docs Web JavaScr
  • 有人可以告诉我如何用循环替换以下 javascript 代码吗?

    dataBase 0 valueline d3 svg line x function d return x d Date y function d return y d dataBase 0 columnline dataBase 1 v
  • 如何使用 IAccessible 在 Firefox 中访问文档的 HTML

    我可以使用以下代码从 Firefox 窗口获取 IAccessible 对象 Guid guid new Guid 618736E0 3C3D 11CF 810C 00AA00389B71 object obj null int ret A