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

使用C#控制台应用程序打开和关闭internet浏览器,c#,console-application,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 {

我在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");
}

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

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

您不需要浏览器实例来请求URL,您的控制台应用程序应该使用或来请求URL。

您尝试过吗?是否可以先使用
Console.Readine()
,然后再添加
Process.Kill()
?如果您对实际的浏览器实例不感兴趣,并且只是为了请求url,考虑一下使用一个HTTP请求使用<代码> HttpWebRequest < /代码>或<代码> WebClient <代码> @ JAMIEC,这听起来是个更好的主意——我来看看!谢谢,然后用户想知道他们所有打开的窗口都到哪里去了@理查德:什么窗户?根据OP,没有用户使用浏览器:“没有其他用户会使用浏览器,因此不需要检查浏览器是否由控制台打开,只需关闭应用程序。”@Richard说得很好,但这将作为远程服务器上的计划任务运行,并且浏览器不用于任何其他用途-我更新了问题以进一步澄清。谢谢@itsme86感谢您的回答-我投票通过了,但正如Jamiec所指出的那样,使用
HttpWebRequest
更符合我的需要(因为我一开始并不真正需要浏览器实例)。@我的评论中所有人都意识到,其他寻求解决这一问题的人可能不会注意到您案例中的警告(还请注意,控制台应用程序可以打开带有嵌入式浏览器的对话框:在您想要控制它但需要用户交互的地方很有用)。谢谢-我不知道您可以这样做,这就不需要我关闭浏览器(或首先打开它们)。