从命令行关闭正在运行的程序

时间:2012-02-09 10:09:57

标签: c# windows visual-studio-2010 command-line

Visual Studio 2010 C#

是否可以从命令行运行和关闭程序?我需要做那样的事情:

myProgram.exe -start
-- do something --
myProgram.exe -stop

我知道如何实现第一部分(主要的String [] args)但是如何关闭正在运行的程序呢?


修改

myProgram.exe正在处理一些UDP通信,并且必须在执行某些操作时执行。抱歉,因为不精确。

5 个答案:

答案 0 :(得分:1)

是否可以将taskkill用于此类事情。

即如果要关闭myProgram.exe,则可以执行

taskkill /IM myProgram.exe

答案 1 :(得分:1)

我猜你知道如何检查命令行参数并查找是否已指定停止?以下应该做的工作。

        var currentProcess = System.Diagnostics.Process.GetCurrentProcess();
        var matchingProcesses = System.Diagnostics.Process.GetProcesses().Where(x => x.Id != currentProcess.Id && x.ProcessName == currentProcess.ProcessName);
        foreach (var process in matchingProcesses) {
            process.Kill();
        }

答案 2 :(得分:0)

使用旨在关闭进程的命令行程序 - pskill就是这样一个程序。

pskill myProgram.exe

内置实用程序是taskkill

taskkill /im myProgram.exe

答案 3 :(得分:0)

  • 按名称获取流程ID
  • 终止这个过程

答案 4 :(得分:0)

正如Fox32在他的评论中已经提到的那样,你应该采用this approach,因为在这种情况下你的应用程序可以真正地自行关闭。如果您只是去使用taskkill等来从外部世界中杀死您的进程,您可能会遇到麻烦,具体取决于您使用的资源(网络,数据库,文件等)。