【发布时间】:2013-12-30 06:11:24
【问题描述】:
有没有办法杀死不是从 C# 代码启动的批处理进程以从 C# 代码中杀死。 即我有 start.bat 正在运行,我想在 WPF 应用程序启动时杀死它。这可能吗?? WPF 应仅终止 start.at 而不会终止其他批处理运行。
【问题讨论】:
标签: c# batch-file kill-process
有没有办法杀死不是从 C# 代码启动的批处理进程以从 C# 代码中杀死。 即我有 start.bat 正在运行,我想在 WPF 应用程序启动时杀死它。这可能吗?? WPF 应仅终止 start.at 而不会终止其他批处理运行。
【问题讨论】:
标签: c# batch-file kill-process
int processID = ...
// you also can use Process.GetProcessesByName(....) to find the proicessID - or the batch process
//Later when you need to kill the process...
Process pToKill = Process.GetProcessById(processID);
pToKill.Kill();
【讨论】:
Process.Start(或任何其他启动新CMD的方式)启动的,那么Knuckle-Dragger(+1)的回答是一个很好的起点。
从 powershell 我发现 Start.bat 的 PID 是这样的。
(gwmi win32_process | where {$_.commandline -match "START.BAT"} | select processID).processID
从 C# 调用 powershell 或直接联系 WMI,如果您查看 Win32_Process 命令行和 processID 属性很容易找到。
【讨论】: