我发现了一些与我的问题类似的问题,但没有一个令人满意的答案,而且这些问题已有几年历史了。因此,我希望自那以后也许在这方面已经取得了一些进展。
我感兴趣的是能够访问 Activity 的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中的接口(interface)并不总是冻结的,未冻结的接口(interface)是特定于版本的,并且可能因发行版本而异。
XPCOM的IHTMLDocument2
等效项是 nsIDOMDocument
。
XPCOM与COM非常相似,基类称为nsISupports
,并且具有与IUnknown
完全相同的语义(包括相同的二进制布局和GUID
),但不要假定所有内容都从COM映射到XPCOM(例如,在其中没有IDispatch
XPCOM)。