从EXE中读取“内存中的HTML”浏览器

时间:2012-01-11 22:42:01

标签: internet-explorer win32-process

我需要从外部进程(EXE应用程序)中读取“Internet Explorer 8”中显示的网页的“内存”HTML。

更简单地说,让我们说你在浏览器中加载了一些“输入文本”的页面 显示,然后你填写INPUTs并“在”提交页面之前我需要切换到我的EXE应用程序并读取INPUT中填充的值。

我尝试过SPY ++,但网页中的任何INPUT都没有“类”(就像普通Win32应用程序中的文本框一样),并且broswer的整个客户区显示为“Internet Explorer_Server”类。

我已经多次这样做以在应用程序之间集成数据但总是针对Win32应用程序,这是我第一次尝试从浏览器中读取而我真的在这里感到茫然。

我唯一能理解的是,我不知何故需要访问正在运行的浏览器的实际DOM。

请注意我无法使用某种Web控件来加载页面然后解析,因为加载的页面将为空,我需要的是用户在提交页面之前输入的数据。

任何建议从哪里开始寻找将不胜感激:)

1 个答案:

答案 0 :(得分:1)

您无法使用HWND访问IE浏览器窗口的内容,因为没有。从HWND窗口的"Internet Explorer_Server"开始,您可以{{1}}从{{1}}开始,然后根据需要使用extract an IHTMLDocument2 interface来访问和操作浏览器内容。

IE's DOM interfaces

How to obtain an IHTMLDocument2 from an HWND

Interfaces and Scripting Objects