如何启动浏览器,然后将其指向页面?

时间:2009-04-03 19:51:16

标签: c# internet-explorer browser navigation

我需要启动一个浏览器,做一些工作,然后让浏览器导航到一个URL(按此顺序) 第一部分当然很简单,我有一个Process对象。我不知道如何将其引导到目标页面?

如何将Process视为浏览器并将其导航到所需的页面? 任何帮助,指针,代码片段表示赞赏。

5 个答案:

答案 0 :(得分:3)

而不是启动浏览器&然后导航到页面,告诉操作系统您要运行URL。 Windows将选择正确的浏览器,并将用户导航到给定的URL。

System.Diagnostics.Process.Start("http://www.StackOverflow.com");

答案 1 :(得分:2)

如果您不需要在生产中执行此操作,则可以使用WatiN等测试库来执行此操作:

using WatiN.Core;

 //Placeholder page to launch initial browser
 IE ie = new IE("http://www.google.com");

 DoSomeWork();

 //Now navigate to the page you want
 ie.GoTo("http://stackoverflow.com");

答案 2 :(得分:1)

我对这个问题的第一直觉是DDE,但似乎已经在Windows Vista中退役,所以这并不好。很遗憾,因为它是Windows中用于进程间通信(IPC)的唯一一致机制......哦,我如何在Amiga上想念Arexx。

无论如何,我相信以下内容可行,但不幸的是,由于它的工作方式,无论配置的浏览器如何,它都会启动Internet Explorer。

  1. 如果您的应用程序有一个Form,则在其上创建一个WebBrowser控件。将其设置为不可见,因为我们仅将其用作启动设备而不是显示网页。
  2. 在代码中,在您要显示网页的位置,使用以下代码:

    webBrowser1.DocumentText =“window.open('How to launch a browser and later direct it to a page?','BananasAreOhSoYummy');”;

  3. 这样做是为了告诉WebBrowser控件,它只是伪装的IE,打开一个名为'BananasAreOhSoYummy'的新窗口。因为我们已经为窗口指定了名称,所以我们可以使用不同的URL重复使用该行来更改该特定浏览器窗口中的页面。 (如果用户碰巧关闭它,将打开一个新窗口。)

    我将考虑一种尊重用户默认浏览器选择的方法。

答案 3 :(得分:0)

如果您不需要IE的实际实例,可以使用System.Windows.Forms.WebBrowser控件。

答案 4 :(得分:0)

我认为不是向浏览器发送网址,而是发送可以运行并将浏览器指向网站的javascript。

不确定这是否有效,但我认为没有理由不这样做