【问题标题】:Open file with Windows default Application使用 Windows 默认应用程序打开文件
【发布时间】:2021-09-04 20:54:48
【问题描述】:

我正在使用 C# .NET 5.0 列出文件夹中的 PDF 文件,当双击某个项目时,它会使用 Windows 默认 PDF 查看器打开选定的 PDF。
我已经搜索了如何执行此操作,但解决方案代码引发了异常。

System.Diagnostics.Process.Start(@"C:\path\to\pdf\file.pdf");

错误:

System.ComponentModel.Win32Exception: 'The specified executable is not a valid application for this OS platform.'

有人可以帮我吗?

【问题讨论】:

标签: c# pdf .net-5


【解决方案1】:

在尝试打开 Excel 电子表格时遇到了同样的问题。

.Net Framework 过去 UseShellExecute 默认为 true,.Net 5.0 将默认为 false。

简而言之,UseShellExecute 为 false,它将使用 CreateProcess 而不是 ShellExecute,并且与在终端上运行命令具有相同的效果。

通过使用下面的代码,只要您有与该扩展相关的程序,您就应该能够运行它。

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"C:\path\to\pdf\file.pdf";
psi.UseShellExecute = true;
Process.Start(psi);

如果您不想这样做,您还可以指定要使用的程序二进制文件以及要打开的文件,例如,您可以使用 edge 打开 PDF 文件,如下所示:

Process.Start(@"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", @"C:\path\to\pdf\file.pdf");

【讨论】:

  • 太棒了。现在我明白了……谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
相关资源
最近更新 更多