当用户按下键盘上的键时,我试图关闭计算器。但是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();
答案 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