2012-09-28 55 views
2

从C#控制台应用程序我需要打开Web浏览器,我想输出。这是链接中的服务器名称。如果Internet Explorer不显示任何内容,则表示服务器已启动。如果我得到Internet Explorer无法显示网页,那么它意味着服务器已关闭。在C#中打开Web浏览器并捕获输出

下面是打开IE

Process.Start("https://foo.com"); 

代码如果Internet Explorer显示空白页,然后服务器启动其他服务器停机。

想知道浏览器是如何自动关闭的?

+1

为什么Internet Explorer? – elyashiv

+1

这就像从伦敦经悉尼前往巴黎。有更好的方法... – spender

+2

考虑一下System.Net.WebClient。 –

回答

6
using(WebClient client = new WebClient()) 
{ 
    string pageData; 
    try 
    { 
     pageData = client.DownloadString(yourAddress); 
    } 
    catch(Exception e) 
    { 
     //something went wrong. Maybe the site is down? 
    } 
    //does pageData have expected content? 
} 
+0

我试图做到这一点,但控制台应用程序正在关闭,它没有显示任何异常 – Sohail

+0

我期待我的结果只有两种方式,1)如果服务器已启动,则不显示任何内容2)如果服务器关闭,则表明Internet Explorer无法显示页面 – Sohail

0
  1. 如果你只需要得到一个网页的价值,你应该使用一些更轻巧,例如,HttpClient的(http://pfelix.wordpress.com/2012/01/11 /在新净的HttpClient类/)。这样您就不必担心清理Internet Explorer等外部进程。

  2. 如果您坚持使用IE,Process.Start(string)会返回System.Diagnostics.Process的一个实例,因此您可以在返回的实例上调用.Close()

var ieProcess = Process.Start("https://foo.com"); 
bool isServerUp = IsServerUp(ieProcess); 
ieProcess.Close(); 
+0

IsServerUp不是一个正确的方法 – Sohail

+0

对,它是伪代码来表示您正在尝试执行的任何操作。 –