调用控制台应用程序

时间:2014-04-03 18:07:14

标签: c# wpf console-application

在WPF中调用控制台应用程序的代码是什么?我在WPF中有一个你需要的应用程序:

  1. 调用控制台应用程序;
  2. 控制台应用程序关闭WPF
  3. 控制台应用程序再次调用WPF并关闭控制台应用程序。
  4. 这是必要的,因为我正在建立一个系统,其中应用程序的更新必须关闭要复制的文件。

    对于关闭应用程序WPF,我使用以下内容:

    Process wpfProc = Process.GetProcessesByName("MainWindow.exe").First();
    wpfProc.Kill();
    

    在控制台应用程序中返回:

    Unhandled Exception: System.InvalidOperationException: Sequence sontains no elements
        at System.Link.Enumerable.First[TSource]<IEnumerable'1 source>
        at Updater.Program.Main<String[] args> in d:\endereçodoUpdater\Program.cs:line 17
    
    第17行中的

    具有以下内容:

    Process wpfProc = Process.GetProcessesByName("MainWindow").First();
    

    如何解决此问题?

1 个答案:

答案 0 :(得分:2)

您可以使用Process.Start执行此操作:

Process myProc = Process.Start("MyConsoleApp.exe");

//Close gracefully
Application.Exit();

在MyConsoleApp.exe中,您需要使用GetProcessByName来终止您的WPF应用程序,然后再次使用Process.Start重新启动它:

Process wpfProc = Process.GetProcessesByName("MyWpfApp.exe").First();

//If you want to directly kill it
wpfProc.Kill();

//Or be nice and let it kill itself
wpfProc.WaitForExit();

//Do stuff
Process.Start("MyWpfApp.exe");

MSDN

上的System.Diagnostics.Process