使用C#控制台应用程序打开和关闭Internet浏览器

时间:2015-10-06 15:53:10

标签: c# console-application

我在C#中有一个简单的控制台应用程序,我将用它来轮询三个URL,以便更新由第三方生产的网站(库存水平,产品图像等)。控制台应用程序如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Diagnostics.Process.Start(@"http://URL1");
            System.Diagnostics.Process.Start(@"http://URL2");
            System.Diagnostics.Process.Start(@"http://URL3");
        }
    }
}

这完美无缺,但打开了窗口(单个浏览器实例中有三个选项卡)。因为这将每小时左右运行,有没有办法我可以让应用程序在打开后“杀死”窗口?否则,Internet Explorer会话将慢慢消耗系统内存。

我无法找到关于从控制台应用程序关闭浏览器的任何其他内容,但如果我错了,请指向正确的方向。

其他任何东西都不会使用浏览器,所以它不需要检查浏览器是否由控制台打开,它只需要关闭应用程序。它将作为远程服务器上的计划任务运行。感谢。

最简单的方法是按照建议更改为HttpWebRequest。下面的结果代码:

static void Main(string[] args)
{
    HttpWebRequest myReq1 = (HttpWebRequest)WebRequest.Create("http://URL1");
    HttpWebRequest myReq2 = (HttpWebRequest)WebRequest.Create("http://URL2");
    HttpWebRequest myReq3 = (HttpWebRequest)WebRequest.Create("http://URL3");
}

2 个答案:

答案 0 :(得分:4)

您不需要浏览器实例来请求网址,您的控制台应用应该使用WebClientHttpWebRequest来请求网址。

答案 1 :(得分:-1)

您可以按名称终止浏览器进程:

foreach (var process in Process.GetProcessesByName("iexplore.exe"))
{
  process.Kill();
}