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

如何在C#中通过特定ID终止进程或重命名后按名称终止

两种方式终止特定C#进程

一、通过进程ID直接终止

这是最精准可靠的方式,只需明确目标进程的ID,即可直接定位并终止:

using System.Diagnostics;

try
{
    // 替换为你要终止的进程ID
    int targetProcessId = 1234;
    Process targetProcess = Process.GetProcessById(targetProcessId);
    
    // 终止进程
    targetProcess.Kill();
    // 可选:等待进程完全退出
    targetProcess.WaitForExit();
}
catch (ArgumentException)
{
    Console.WriteLine("指定ID的进程不存在");
}
catch (InvalidOperationException)
{
    Console.WriteLine("无权限终止该进程或进程已退出");
}

注意事项

  • 可通过任务管理器或Process.GetProcessesByName("YourExeName")遍历获取所有同名进程的ID。
  • 终止系统进程或高权限进程时,程序需以管理员身份运行。

二、通过自定义标识(替代重命名进程)

进程的可执行文件名无法在运行时修改,所谓"重命名进程"实际是给进程添加唯一标识,再通过标识筛选终止,以下是两种常用方案:

方案1:设置窗口标题(适用于带界面的程序)

在目标进程中设置唯一窗口标题,随后通过标题筛选:

目标进程代码(控制台/WinForm)

// 控制台程序设置标题
Console.Title = "MyApp_UniqueId_789";

// WinForm程序设置窗口标题
// this.Text = "MyApp_UniqueId_789";

控制进程代码(查找并终止)

using System.Diagnostics;

foreach (Process process in Process.GetProcessesByName("YourExeName.exe"))
{
    if (process.MainWindowTitle == "MyApp_UniqueId_789")
    {
        process.Kill();
        process.WaitForExit();
        break;
    }
}

方案2:自定义环境变量(适用于所有类型程序)

启动进程时注入唯一环境变量,通过读取环境变量筛选:

启动目标进程时注入环境变量

using System.Diagnostics;

ProcessStartInfo startInfo = new ProcessStartInfo("YourExeName.exe");
// 添加唯一标识环境变量
startInfo.EnvironmentVariables["MY_PROCESS_ID"] = "Unique_Tag_101";
Process.Start(startInfo);

控制进程读取环境变量并终止

需引用System.Management程序集来读取进程环境变量:

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

foreach (Process process in Process.GetProcessesByName("YourExeName.exe"))
{
    try
    {
        ManagementObject processObj = new ManagementObject($"Win32_Process.Handle='{process.Id}'");
        processObj.Get();
        string[] envVars = (string[])processObj["EnvironmentVariables"];
        
        if (envVars.Any(var => var == "MY_PROCESS_ID=Unique_Tag_101"))
        {
            process.Kill();
            process.WaitForExit();
            break;
        }
    }
    catch (ManagementException)
    {
        // 无权限读取进程信息,跳过该进程
        continue;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:25:18