【问题标题】:Open and close internet browser with C# console application [duplicate]使用 C# 控制台应用程序打开和关闭 Internet 浏览器 [重复]
【发布时间】:2015-10-06 15:53:10
【问题描述】:

我有一个简单的 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");
}

【问题讨论】:

  • 是否可以有Console.Readine(),然后在后面加上Process.Kill()
  • 如果您对实际的浏览器实例不感兴趣,并且它只是用于向 url 发出请求,请考虑使用 HttpWebRequestWebClient 发出 Http 请求
  • @Jamiec 这听起来像是一个更好的主意 - 我会调查一下!谢谢

标签: c# console-application


【解决方案1】:

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

【讨论】:

  • 谢谢 - 我不知道你能做到这一点,这让我不需要关闭浏览器(或首先打开它们)。
【解决方案2】:

你可以通过名字杀死浏览器进程:

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

【讨论】:

  • 然后用户想知道他们所有打开的窗口都去了哪里!
  • @richard 什么窗口?根据 OP,没有用户使用浏览器:“没有其他人会使用浏览器,因此不需要检查浏览器是否被控制台打开,它只需要关闭应用程序。”
  • @Richard 很好,但这将作为远程服务器上的计划任务运行,并且浏览器不用于其他任何事情 - 我已经更新了问题以进一步澄清。谢谢!
  • @itsme86 谢谢你的回答——我投了赞成票,但使用HttpWebRequest 更适合我的需要(因为我首先并不需要浏览器实例),正如 Jamiec 所指出的那样.
  • @Lyall 在我的评论中意识到,其他希望解决此问题的人可能不会在您的情况下接受该警告(另请注意,控制台应用程序可以使用嵌入式浏览器打开对话框:有用你想控制它但需要用户交互)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
  • 1970-01-01
  • 2017-04-29
  • 2015-12-14
  • 1970-01-01
  • 2023-03-30
  • 2021-08-09
相关资源
最近更新 更多