Visual Studio 2010中 C#从命令行关闭正在运行的程序
是否有可能运行和命令行关闭程序?我需要做这样的事情:
myProgram.exe -start
-- do something --
myProgram.exe -stop
我知道如何实现第一部分(主字串[] args),但我怎么能收我的正在运行的程序?
编辑
myProgram.exe正在处理一些UDP通信和同时在东西已经被执行 - 执行 - 做一些事情。对不起,不准确。
Visual Studio 2010中 C#从命令行关闭正在运行的程序
是否有可能运行和命令行关闭程序?我需要做这样的事情:
myProgram.exe -start
-- do something --
myProgram.exe -stop
我知道如何实现第一部分(主字串[] args),但我怎么能收我的正在运行的程序?
编辑
myProgram.exe正在处理一些UDP通信和同时在东西已经被执行 - 执行 - 做一些事情。对不起,不准确。
我猜你知道如何检查命令行参数并查找是否指定了停止?以下应该完成这项工作。
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();
}
由于Fox32在他的评论中已经提到你真的应该采取this approach,原因在这种情况下,应用程序可以真正关机本身优雅。如果你只是去使用的taskkill等杀来自外部世界的过程中,你可能真的遇到麻烦根据使用(网络,数据库,文件等)的资源。
如果您使用的WinForms这可能帮助: http://stackoverflow.com/questions/4547643/how-can-i-pass-command-line-arguments-to-an-already-running-process – Fox32 2012-02-09 10:12:49
可以提供更多详细信息吗? – kbvishnu 2012-02-09 10:13:06
这是很难理解什么正在这里问:“'myProgram.exe'”进程将退出(不复存在)曾经的主要功能完成,即经过“ - 做一些事情 - ”已完成,没有需要从外部杀死它。如果这不是你想要的,你需要澄清你的问题。 – 2012-02-09 10:15:51