2012-01-27 172 views
3

我想写一个小型实用程序,它可以自动化Internet Explorer using C++ (No MFC)。 一些,我要自动运行的动作有: -
1.打开一个URL
2.单击超链接在浏览器实例
3.设置文本框
4.检查复选框的值,降下拉菜单等
使用C/C++自动化Internet Explorer

我是一个绝对的初学者,并没有COM的经验,但我目前正在学习的过程。 任何人都可以引导我,如建议资源和我需要做自动化的简要概述。 我会很感激。

谢谢, Ashish。

+2

如果你刚开始学习创建一个C#winform应用程序,滴在WebBrowser控件和变戏法似的! – 2012-01-27 04:17:48

+0

谢谢@JeremyThompson,但我不能使用C#,我想使用C++,也学习了一点COM,我订购了INSIDE COM,等待它出货。截至目前,COM都令人困惑。 – 2012-01-27 04:25:53

+0

组件对象模型(COM)现在真的很老了。随着WinRT和下一个视觉工作室'vNext',MetroApps等就在我的角落,我建议你选择更先进的技术。另一个建议是使用一个单元测试记录器 - 像Selenium for FireFox - 但是一个针对IE,欢呼 – 2012-01-27 04:47:02

回答

3

我强烈建议Microsoft Visual C++编译器COM支持。

一般来说它的工作原理是这样的:

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

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

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

然后,这使得它非常容易使用Internet Explorer或由C任何其他COM对象++。

看到这里的文档:

+0

嗨@Ben我遇到过IWebBrowser2界面,我可以用它来打开IE窗口,但如何我是否像点击超链接和填充文本框一样执行操作?有任何想法吗? – 2012-01-27 09:09:39

+1

从IWebBrowser2中,您需要使用'get_Document'获取Document对象。从那里您可以使用与浏览器中运行的JavaScript相同的DOM API来控制文档。 – Ben 2012-01-27 09:14:53

+0

您可以将我指向资源或使用DOM API控制文档的示例。谢谢 – 2012-01-27 09:57:19

1

杰里米汤普森建议的基本答案:使用WebBrowser控件。这在C#中要容易得多,因为它包含了一些您需要的样板代码。即使MFC包含一些。没有这个,你需要实现一个合适的ActiveX容器。对于一个根本不了解COM的人来说,这是非常不平凡的。 ActiveX是一种高级的COM技术。有一些示例代码here

一旦您托管它,相比之下,事情变得相当微不足道。打开URL只是一个电话:IWebBrowser2::Navigate(URL, flags...)

+0

我能够执行导航,我需要帮助执行其他操作,如点击一个链接和填充文本框等 – 2012-01-27 10:12:11