You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关闭Chromium浏览器进程而不关闭Google Chrome浏览器?

解决方法:区分Chromium和Google Chrome进程,只关闭前者

这问题我太懂了!因为Chromium和Google Chrome的进程名都是chrome,直接按名称调用Kill()肯定会把两者都干掉。要实现只关Chromium、留着Chrome的需求,核心是通过进程的可执行文件路径来区分两者——它们的安装目录是完全不同的。

具体思路

  1. 先获取所有名为chrome的进程;
  2. 对每个进程,读取它的主模块路径(也就是启动这个进程的exe文件位置);
  3. 判断路径是否包含Chromium的特征标识(比如Windows上的\Chromium\,macOS的Chromium.app);
  4. 只杀掉符合Chromium路径的进程,跳过Google Chrome的进程。

C# 代码示例

using System;
using System.Diagnostics;
using System.Linq;

class Program
{
    static void Main()
    {
        var chromeRelatedProcesses = Process.GetProcessesByName("chrome");
        
        foreach (var process in chromeRelatedProcesses)
        {
            try
            {
                string executablePath = process.MainModule.FileName;
                
                // 根据你的操作系统调整判断条件:
                // Windows 示例:路径包含 "\Chromium\"
                if (executablePath.IndexOf(@"\Chromium\", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    process.Kill();
                    Console.WriteLine($"已关闭Chromium进程(ID:{process.Id})");
                }
                // 可选:验证并跳过Google Chrome进程
                // else if (executablePath.IndexOf(@"\Google\Chrome\", StringComparison.OrdinalIgnoreCase) >= 0)
                // {
                //     Console.WriteLine($"跳过Google Chrome进程(ID:{process.Id})");
                // }
            }
            catch (InvalidOperationException)
            {
                // 处理进程已退出或无法访问的情况
                Console.WriteLine($"无法访问进程 {process.Id}:进程可能已结束或权限不足");
            }
            catch (System.ComponentModel.Win32Exception)
            {
                // 处理Win32权限问题(比如沙盒进程无法读取主模块)
                Console.WriteLine($"权限不足,无法读取进程 {process.Id} 的路径");
            }
        }
    }
}

关键细节说明

  • 路径判断的可靠性:这是区分两者最稳定的方式,因为进程名可以被修改,但安装路径通常是固定的(除非用户自定义了安装目录,这时候你需要根据实际情况调整判断条件)。
  • 异常处理的必要性:必须捕获InvalidOperationException和Win32Exception,因为Chrome/Chromium的沙盒进程、已退出的进程会导致读取主模块路径失败,不加异常处理会导致程序崩溃。
  • 跨平台适配:如果是Linux或macOS,需要修改路径判断逻辑:
    • Linux:Chromium的路径通常是/usr/bin/chromium-browser或/opt/chromium/chrome,可以判断是否包含chromium关键字;
    • macOS:路径是/Applications/Chromium.app/Contents/MacOS/Chromium,可以判断是否包含Chromium.app。

如果你的需求是只关闭Chromium的网页子进程(而非整个浏览器),还可以进一步判断进程的命令行参数——网页进程通常带有--type=renderer或--type=gpu-process等标识,但这种方式需要额外解析命令行,复杂度更高,如果你需要的话可以再细化。

内容的提问来源于stack exchange,提问作者Pipo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:02:07