2011-08-29 68 views
0

我已经为一家公司编写了一个广告软件(不是间谍软件!这是道德和合法的)程序。上下文广告软件

基本上这个公司想要的是放弃免费的东西来换取下载显示广告的用户浏览互联网的广告软件的人。

我必须做的是创建一个程序,每当某个URL显示在地址栏中时,该程序将打开一个新的IE实例。

因此,如果用户进入http://google.com则一定广告就会弹出

我的问题是从哪里开始(以便它知道什么弹出了这个软件连接到互联网)?我应该使用VB.NET来做这个程序吗?

我还没有完全做过这样的事情,我只是想让我指点一些关于如何开始的资源。

+0

道德不请自来的广告软件的概念给出了一些暂停,但似乎麻子标志这是不可避免的,这些天。在用户机器上启动*进程*而没有办法控制它的概念仍然是令人无法接受的。有一个pr0n网站作者的论坛是我想象的地方。 –

+0

这对我来说也很奇怪。但是这就是'选择'免费获得另一个有用的软件,以换取看广告。 –

回答

0

是的,你可以通过VB.Net做到这一点。您需要使用InternetExplorer对象。它暴露了许多让你自动化IE的属性。

要使用这些对象,您需要为Microsoft Internet控件的项目添加COM引用。不同版本的IE使用不同的DLL; IE7是ieframe.dll,IE6是SHDocVw.dll。为了让你的代码在两个版本上都可以工作,你应该避免使用任何IE7特性,并使用后期绑定/ COM接口而不是早期绑定。

您会遇到的一个问题是,InternetExplorer对象只会创建新的实例,而不会连接到现有的实例。下面是一些代码,将允许您连接到现有的对象:

Dim Existing As New List(Of SHDocVw.InternetExplorer) 
Dim SWs As New SHDocVw.ShellWindows 
Dim IE As SHDocVw.InternetExplorer 

For Each IE In SWs 
    'Add this instance to the list 
    Existing.Add(IE) 
Next 
1
+0

广告插件必须采用IE扩展的形式吗?它不能是桌面程序或独立程序吗? –

+0

“我必须做的是创建一个程序,每当某个URL显示在地址栏中时,该程序就会打开一个新的IE实例。” < - Jimmy Huch。我根据你的言论做出了一个假设。每个浏览器都有不同的API来进行交互。你可以编写一个程序来处理所有这些程序,但它会更大;或者您可以使用相同的基本代码编写多个程序并根据浏览器进行安装。选择是你的。 – stslavik