我需要启动一个浏览器,做一些工作,然后让浏览器导航到一个 URL(按那个顺序)。
第一部分当然很简单,我有一个 Process 对象。我不知道以后如何将其定向到目标页面?
如何将 Process 视为浏览器并使其导航到所需页面?任何帮助,指针,代码片段表示赞赏。
我需要启动一个浏览器,做一些工作,然后让浏览器导航到一个 URL(按那个顺序)。
第一部分当然很简单,我有一个 Process 对象。我不知道以后如何将其定向到目标页面?
如何将 Process 视为浏览器并使其导航到所需页面?任何帮助,指针,代码片段表示赞赏。
无需启动浏览器然后导航到页面,只需告诉操作系统您要运行 URL。Windows 将选择正确的浏览器,并将用户导航到给定的 URL。
System.Diagnostics.Process.Start("http://www.StackOverflow.com");
如果您不需要在生产中执行此操作,您可以使用 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");
我对这个问题的第一直觉是 DDE,但它似乎已在 Windows Vista 中停用,所以这并不好。很遗憾,因为它是 Windows 中用于进程间通信 (IPC) 的唯一一致机制……哦,我多么想念 Amiga 上的 Arexx。
无论如何,我相信以下内容会起作用,但不幸的是,由于它的工作方式,无论配置的浏览器如何,它都会启动 Internet Explorer。
在代码中,在要显示网页的位置,使用以下代码:
webBrowser1.DocumentText = "window.open('如何启动浏览器并稍后将其定向到页面? ', 'BananasAreOhSoYummy');";
它的作用是告诉 WebBrowser 控件,它只是伪装的 IE,打开一个名为“BananasAreOhSoYummy”的新窗口。因为我们给了窗口一个名字,所以我们可以用不同的 URL 重复使用该行来更改特定浏览器窗口中的页面。(如果用户碰巧将其关闭,则会打开一个新窗口。)
我将考虑一种尊重用户默认浏览器选择的方法。
如果不需要 IE 的实际实例,可以使用 System.Windows.Forms.WebBrowser 控件。
我认为与其向浏览器发送 url,不如向它发送 javascript,该 javascript 将运行并将浏览器定向到站点。
不确定这是否可行,但我看不出为什么它不会