c++ - 在 C 或 C++ 中选择并复制 firefox 内容到剪贴板

标签 c++ c firefox dom clipboard

我发现了一些与我的问题类似的问题,但没有一个答案令人满意,而且它们已经有几年的历史了。所以我希望从那时起在这方面可能已经取得了一些进展。

我感兴趣的是访问事件 Firefox 窗口的内容并将其复制到剪贴板的能力——使用 C 或 C++ 代码。

在 Internet Explorer 中,我可以使用 COM 的 IHTMLDocument2 访问浏览器的内容 DOM .

Firefox 中有类似的东西吗?如果是这样,我该怎么做?

顺便说一句,我目前的(丑陋的)解决方法是通过发送虚拟击键来模仿 Ctrl+A、Ctrl+C,但这并不是一个真正稳健和优雅的解决方案。

将不胜感激想法、技巧、见解和知识。

谢谢。

注意:为了进一步阐明挑战,我想指出我对 Javascript 不感兴趣基于或Flash基于解决方案。相反,我对 C/C++ 解决方案感兴趣,即使它仅限于 Microsoft Windows 平台。

最佳答案

firefox 中的 DOM 通过 XPCOM 暴露给 C++但请注意,与 MSHTML(在 IE 中)不同,Mozilla 中的界面并不总是卡住未卡住界面是特定于版本的,并且可能会因版本而异。

IHTMLDocument2 的 XPCOM 等效项是 nsIDOMDocument .

XPCOM 与 COM 非常相似,基类称为 nsISupports 并且与 IUnknown 具有完全相同的语义(包括相同的二进制布局和 GUID) 但不要假设一切都从 COM 映射到 XPCOM(例如,XPCOM 中没有 IDispatch)。

关于c++ - 在 C 或 C++ 中选择并复制 firefox 内容到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3879129/

相关文章:

c - C语言求两个字符串中最长的公共(public)词?

html - Firefox 正在加载 css 但未应用。我尝试了其他浏览器,它们都运行良好

javascript - OpenLayers SVG 在 Chrome 中动画,但在 FIrefox 中不动画

Java 将十六进制字符串转换为 java : char[] (C) to byte[] (JAVA)

c++ - QT 应用程序卡住

c++ - 如何检测椭圆是否与另一个椭圆/矩形碰撞

c++ - 为什么在 C++ 上循环数组时会出现奇怪的字符

c++ - 如何在我的 C++ 程序中访问 `addr2line` 功能?

firefox - 对 Firefox 插件进行单元测试

C++ 生成线程