2

我正在开发一个 Windows 窗体应用程序,我需要在其中编辑某些配置文件。现在,当用户单击编辑选项时,我想在一个简单的记事本编辑器中启动这些配置文件。一旦启动,我想停止我的应用程序。只有当用户关闭记事本编辑器时,我才想停止我的应用程序。如何才能做到这一点 ?

我看过这些问题,但答案有很多问题。(我阅读了那里给出的评论。)

Q1 Q2

4

3 回答 3

3
var process = System.Diagnostics.Process.Start("yourfile.txt");
process.WaitForExit();

这将打开您的文件。但是,有时该过程将为空,您将无法等待退出。为什么?

Process.Start 方法

返回值类型:System.Diagnostics.Process

与流程资源关联的新流程组件,如果没有启动流程资源(例如,如果重用现有流程),则为 null。

http://msdn.microsoft.com/en-us/library/53ezey2s.aspx

于 2013-10-03T07:34:34.183 回答
3

您可以使用退出事件:

try
{
     Process myProcess = new Process();
     myProcess.StartInfo.FileName = "notepad.exe";
     myProcess.StartInfo.Arguments = @"C:\PathToYourFile";
     myProcess.EnableRaisingEvents = true;
     myProcess.Exited += new EventHandler(myProcess_Exited);
     myProcess.Start();
 }
 catch (Exception ex)
 {
     //Handle ERROR
     return;
 }

// Handle Exited event and display process information. 
private void myProcess_Exited(object sender, System.EventArgs e)
{
     eventHandled = true;
     Console.WriteLine("Exit time:    {0}\r\n" +
            "Exit code:    {1}\r\nElapsed time: {2}", myProcess.ExitTime, myProcess.ExitCode, elapsedTime);
}
于 2013-10-03T07:34:33.073 回答
2

您可以启动一个Processand WaitForExit

Process pr = Process.Start("Notepad");
pr.WaitForExit();
于 2013-10-03T07:33:54.750 回答