1

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

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

4

5 回答 5

3

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

System.Diagnostics.Process.Start("http://www.StackOverflow.com");
于 2009-04-03T22:48:41.923 回答
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");
于 2009-04-04T09:01:15.947 回答
1

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

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

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

    webBrowser1.DocumentText = "window.open('如何启动浏览器并稍后将其定向到页面? ', 'BananasAreOhSoYummy');";

它的作用是告诉 WebBrowser 控件,它只是伪装的 IE,打开一个名为“BananasAreOhSoYummy”的新窗口。因为我们给了窗口一个名字,所以我们可以用不同的 URL 重复使用该行来更改特定浏览器窗口中的页面。(如果用户碰巧将其关闭,则会打开一个新窗口。)

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

于 2009-04-03T22:34:52.130 回答
0

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

于 2009-04-03T20:01:56.287 回答
0

我认为与其向浏览器发送 url,不如向它发送 javascript,该 javascript 将运行并将浏览器定向到站点。

不确定这是否可行,但我看不出为什么它不会

于 2009-04-03T20:06:56.557 回答