C#:运行进程,然后使用按钮终止它
我希望你能帮我做这个,我的C#已经生锈了 当窗体加载时,我正在运行一个可执行文件C#:运行进程,然后使用按钮终止它,c#,executable,kill,C#,Executable,Kill,我希望你能帮我做这个,我的C#已经生锈了 当窗体加载时,我正在运行一个可执行文件 private void Form1_Load(object sender, EventArgs e) { ProcessStartInfo exe = new ProcessStartInfo(); exe.Arguments = "arguments"; exe.FileName = "file.exe"; Process.Star
private void Form1_Load(object sender, EventArgs e)
{
ProcessStartInfo exe = new ProcessStartInfo();
exe.Arguments = "arguments";
exe.FileName = "file.exe";
Process.Start(exe);
}
我想用一个按钮终止这个过程,但我不知道如何实现
private void button1_Click(object sender, EventArgs e)
{
}
谢谢。
Process.Start
返回类型为Process
的对象。您可以将其保存到变量中,然后使用方法Kill
,该方法会立即停止关联的进程
()
例如,在Form1
级别声明一个字段:
class Form1
{
private Process process;
private void Form1_Load(object sender, EventArgs e)
{
//running notepad as an example
process = Process.Start("notepad");
}
//and then at button handler kill that process
private void button1_Click(object sender, EventArgs e)
{
//consider adding check for null
process.Kill();
}
}
试试这个
try
{
Process [] proc Process.GetProcessesByName("notepad");
proc[0].Kill();
}
您应该调用执行进程有序终止并关闭所有窗口的。与此相反,它会导致异常终止。对于具有用户界面的应用程序,最好使用CloseMainWindow
process = Process.Start(exe);//in form load set field
private void button1_Click(object sender, EventArgs e)
{
process.CloseMainWindow();
}
显示有关异步行为和其他相关细节的重要信息
Kill强制终止进程,而仅关闭MainWindow
要求终止合同。当使用图形界面的进程
执行时,其消息循环处于等待状态。消息循环
每次由发送到进程的Windows消息时执行
操作系统。调用CloseMainWindow发送关闭请求
在格式良好的应用程序中,主窗口关闭子窗口
windows并撤消应用程序的所有正在运行的消息循环。这个
通过调用CloseMainWindow退出进程的请求不强制
应用程序无法退出。应用程序可以请求用户验证
在退出之前,也可以拒绝退出。强制申请
退出,使用Kill方法。CloseMainWindow的行为是
与用户使用关闭应用程序主窗口的操作相同
系统菜单。因此,请求通过关闭退出流程
主窗口不会强制应用程序立即退出
等.
进程会实现你想要的吗?如果你也是“其他”进程的作者,你可能想考虑用户同步对象,例如一个命名的,来传递一个停止请求。第二个进程可以让线程等待事件,并在退出之前执行任何适当的操作。谢谢,它正在工作。但是,如果应用程序被强制关闭,有没有办法终止进程?