【问题标题】:Launch WPF application using Process.Start使用 Process.Start 启动 WPF 应用程序
【发布时间】:2013-11-14 04:42:04
【问题描述】:

我正在尝试使用 Process.Start 启动 wpf 应用程序。当我通过在explorer.exe 中双击它来启动该进程时,它会正确启动;但是,当我尝试使用以下代码 sn-p 时:

var programPath = @"C:\Users\user\Documents\Program Directory\program.exe";
if(!File.Exists(programPath))
{
     MessageBox.Show("The program.exe file does not exist! Cannot launch.");
     return;
}
Process.Start(programPath);

我的 WPF 进程在任务管理器中短暂闪烁,然后立即关闭。

【问题讨论】:

  • 您的应用程序崩溃了吗?只需在 Windows 中查看应用程序日志....
  • @dbw 我不确定它是否崩溃,但我很确定它不应该因为我可以自行启动它......
  • 您的应用程序是否依赖于工作文件夹中的其他文件?如果是这样,请确保将该信息添加到 Start() 方法
  • 如果您的应用程序崩溃然后处理 App_DispatcherUnhandledException。

标签: c# wpf process


【解决方案1】:

我这样解决了这个问题:

Process proc = new Process();
proc.StartInfo.FileName = programPath;
proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(programPath);
proc.Start();

诀窍是将工作目录设置为 WPF 应用程序的路径,而不是启动应用程序的工作目录。

【讨论】:

  • 这是特定于您的程序的吗?如果通过其他方法(例如创建快捷方式然后更改路径或从 cmd 运行)使用无效的工作目录运行它会发生什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多