我需要启动一个浏览器,做一些工作,然后让浏览器导航到一个URL(按此顺序)
第一部分当然很简单,我有一个Process对象。我不知道如何将其引导到目标页面?
如何将Process视为浏览器并将其导航到所需的页面? 任何帮助,指针,代码片段表示赞赏。
答案 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。
在代码中,在您要显示网页的位置,使用以下代码:
webBrowser1.DocumentText =“window.open('How to launch a browser and later direct it to a page?','BananasAreOhSoYummy');”;
这样做是为了告诉WebBrowser控件,它只是伪装的IE,打开一个名为'BananasAreOhSoYummy'的新窗口。因为我们已经为窗口指定了名称,所以我们可以使用不同的URL重复使用该行来更改该特定浏览器窗口中的页面。 (如果用户碰巧关闭它,将打开一个新窗口。)
我将考虑一种尊重用户默认浏览器选择的方法。
答案 3 :(得分:0)
如果您不需要IE的实际实例,可以使用System.Windows.Forms.WebBrowser控件。
答案 4 :(得分:0)
我认为不是向浏览器发送网址,而是发送可以运行并将浏览器指向网站的javascript。
不确定这是否有效,但我认为没有理由不这样做