如何使用c#关闭外部应用程序

时间:2011-10-27 08:57:16

标签: c# process

当用户按下键盘上的键时,我试图关闭计算器。但是p.kill和p.CloseMainWindow不会杀死计算器,只会杀死执行的shell。

Process p = new Process();
p.StartInfo.FileName = "cmd";
p.StartInfo.Arguments = "/c calc ";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.Start();
Console.WriteLine("Press any key to kill Calc");
Console.ReadKey();
p.CloseMainWindow();

p.Kill();

3 个答案:

答案 0 :(得分:7)

不要使用shell(cmd),而是直接运行计算过程。将Process.StartInfo.FileName设置为“calc”应该这样做(假设calc.exe在系统路径上)。

答案 1 :(得分:3)

您需要找到计算器进程并将其终止。实际上创建了两个进程:一个用于cmd,另一个用于Calculator。你只杀了第一个。

另一个解决方案是直接启动计算器,而不使用cmd

答案 2 :(得分:0)

因为您的进程不是calc.exe进程,而是执行计算的命令提示符。

要按名称查找进程并将其终止,您应该使用GetProcessByName,

在此处查看示例:C# Process Process.GetProcessesByName, Kill Process and Exit Event