C# 如何正确关闭使用Process打开的应用程序?
我使用Process类打开应用程序:C# 如何正确关闭使用Process打开的应用程序?,c#,C#,我使用Process类打开应用程序: System.Diagnostics.Process vsProc = new System.Diagnostics.Process(); vsProc.StartInfo.FileName = "program.exe"; vsProc.Start(); 如果我只是杀死它vsProc.kill(),应用程序将不正确地结束。如何正确关闭程序?如何“正确”关闭程序完全取决于您正在处理的程序。如果您是编写子程序的人,那么您就可以实现正确和理智的行为。如果没有,
System.Diagnostics.Process vsProc = new System.Diagnostics.Process();
vsProc.StartInfo.FileName = "program.exe";
vsProc.Start();
如果我只是杀死它
vsProc.kill()
,应用程序将不正确地结束。如何正确关闭程序?如何“正确”关闭程序完全取决于您正在处理的程序。如果您是编写子程序的人,那么您就可以实现正确和理智的行为。如果没有,最好的办法是找到应用程序的主窗口并向其发送关闭请求。。。而不是终止进程。如果需要等待应用程序完成其作业,然后继续父进程,则可以调用它。如果它是一个未终止的应用程序,那么你所说的“错误结束”是什么意思?我认为它错误结束的部分原因是,在杀死它之前,你没有释放与它相关的所有资源。尝试使用以下方法和步骤。CloseMainWindow将向指定的应用程序主窗口发送关闭消息,close()将释放与进程相关的资源。vsProc.close()
释放与此组件关联的所有资源。还可以获取JetBrains ReSharper…假设
vsProc
有一个主窗口,如果该窗口关闭,将干净地结束程序,您可以使用以下步骤。如果您不知道标题或标题是动态的,请使用vsProc.MainWindowTitle
。只需调用vsProc.MainWindowHandle
并使用结果值调用SendMessage命令,就可以跳过FindWindow步骤。resharper与任何事情有什么关系?它使查找这些方法变得更容易。