【问题标题】:Automating Internet Explorer using C/C++使用 C/C++ 自动化 Internet Explorer
【发布时间】:2012-02-20 04:22:47
【问题描述】:

我想写一个可以自动化 Internet Explorer using C++ (No MFC) 的小工具。 我想要自动化的一些操作是:-
1.打开网址
2.点击浏览器实例中的超链接
3.设置文本框的值
4.勾选复选框、下拉菜单等

我是一个绝对的初学者,没有使用COM 的经验,但是我目前正在学习中。 任何人都可以指导我,例如建议资源和简要概述我需要做什么来实现自动化。 我会很感激的。

谢谢, 阿什。

【问题讨论】:

  • 如果您刚刚学习创建 C# winform 应用程序,请放入 WebBrowser 控件,嘿,马上!
  • 感谢@JeremyThompson,但我不能使用 C#,我想使用 C++ 并学习一点 COM,我已经订购了 INSIDE COM,等待它发货。到目前为止,COM 都令人困惑。
  • 组件对象模型(COM)现在真的很老了。随着 WinRT 和下一个视觉工作室“vNext”、MetroApps 等指日可待,我建议您选择更先进的技术。另一个建议是使用单元测试记录器——比如用于 FireFox 的 Selenium——但它是针对 IE 的,干杯
  • @JeremyThompson COM 不会去任何地方。它是 Windows 和许多其他 Microsoft 技术不可或缺的一部分。
  • 我还推荐 Don Box 的《Essential COM》一书。它通过描述 C++ 二进制模型的问题以及它如何不能跨 misc 移植,向您展示了为什么 COM 应运而生。 C++ 编译器。

标签: c++ internet-explorer com automation


【解决方案1】:

我强烈推荐 Microsoft Visual C++ 编译器 COM 支持。

一般是这样的:

#import "c:\path\to\typelib.tlb"

#import "c:\path\to\library.dll"

#import "c:\path\to\program.exe"

这使得在 C++ 中使用 Internet Explorer 或任何其他 COM 对象变得非常容易。

查看文档:

【讨论】:

  • 嗨@Ben 我遇到了IWebBrowser2 界面,我可以用它来打开一个IE 窗口,但是我如何执行诸如单击超链接和填充文本框之类的操作?有什么想法吗?
  • 从 IWebBrowser2 您需要使用get_Document 获取 Document 对象。从那里,您可以使用与在浏览器中运行的 JavaScript 相同的 DOM API 来控制文档。
  • 你能给我指出一个使用 DOM API 控制文档的资源或示例吗?谢谢
  • 谢谢。当我洗澡时,它变得神奇般清晰,哈哈,我自己的尤里卡时刻。我现在可以单击超链接。谢谢。将尝试发布代码,一旦它处于良好状态。
  • @AshishKumarShah 你有没有成功尝试操纵表格?
【解决方案2】:

Jeremy Thompson 提出了基本答案:使用 WebBrowser 控件。这在 C# 中要容易得多,因为它包含您需要的相当多的样板代码。甚至 MFC 也包含其中的一些内容。没有它,您将需要实现一个适当的 ActiveX 容器。对于完全不了解 COM 的人来说,这是非常重要的。 ActiveX 是一种高级 COM 技术。有一点示例代码here

一旦你托管了它,相比之下,事情就变得相当微不足道了。打开 URL 只需一个调用:IWebBrowser2::Navigate(URL, flags...)

【讨论】:

  • 我能够执行导航,我需要帮助来执行其他操作,例如单击链接和填充文本框等。
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2018-12-18
相关资源
最近更新 更多