如何检查谷歌chrome是否正在运行

本文关键字:是否 chrome 运行 谷歌 何检查 检查 | 更新日期: 2023-09-27 18:21:11

我可以通过C#关闭Google chrome,如下所示:

Process[] chromeInstances = Process.GetProcessesByName("chrome");
foreach (Process p in chromeInstances)
{
    p.Kill();
}

但我不知道有什么方法可以检查谷歌浏览器是否在运行。

我想知道的方法检查,如果谷歌铬是运行或不首先,从而将关闭谷歌铬通过C#。

如何检查谷歌chrome是否正在运行

只需检查获得的数组

    Process[] chromeInstances = Process.GetProcessesByName("chrome");
    if (chromeInstances.Length > 0)
    {
        //then chrome is up
    }
    else
    {
        //not working now
    }

如果您想练习通过Process对象处理Chrome实例,可以使用LinqPad进行代码片段处理。下载后,您可以将"语言"下拉列表更改为C# Program并粘贴此代码。慢慢来,在发布另一个问题之前,在这里玩并尝试一下。我看到你以前问过一个问题,得到了一个半答案,去掉了这个半答案,然后又提出了一个新问题,但仍然不能100%清楚你在寻找什么。StackOverflow并不是为您完成每一步,请先尝试。如果你仍然被困,张贴你的代码与一个适当的问题,以寻求帮助。

void Main()
{
    var chromeProcess = new ChromeProcess();
    Console.WriteLine(chromeProcess.AnyInstancesRunning());
    Console.WriteLine(chromeProcess.NumberOfInstancesRunning());
    chromeProcess.ChromeInstanceIds().Dump("Chrome Instance Ids");
    chromeProcess.KillChromeInstance(2816);
    //open and close a few chrome windows
    chromeProcess.RefreshInstances();
    Console.WriteLine(chromeProcess.AnyInstancesRunning());
    Console.WriteLine(chromeProcess.NumberOfInstancesRunning());
    chromeProcess.ChromeInstanceIds().Dump("Chrome Instance Ids");
}
// Define other methods and classes here
public class ChromeProcess
{
    private const string ImageName = "chrome";
    private IEnumerable<Process> _Instances;
    public ChromeProcess()
    {
        _Instances = Process.GetProcessesByName(ImageName);
    }
    public bool AnyInstancesRunning()
    {
        return _Instances.Any();
    }
    public int NumberOfInstancesRunning()
    {
        return _Instances.Count();
    }
    public IEnumerable<int> ChromeInstanceIds()
    {
        return _Instances.Select(i => i.Id).ToArray();
    }
    public void KillChromeInstance(int id)
    {
        var process = Process.GetProcessById(id);
        if(process.ProcessName != ImageName)
        {
            throw new Exception("Not a chrome instance.");
        }
        process.Kill();
    }
    public void RefreshInstances()
    {
        _Instances = Process.GetProcessesByName(ImageName);
    }
}