一尘不染

使用默认应用程序和参数的C#打开文件

c#

使用默认应用程序打开文件的最简单方法是:

System.Diagnostics.Process.Start(@"c:\myPDF.pdf");

但是,我想知道是否存在一种将参数设置为默认应用程序的方法,因为我想用确定的页码打开pdf。

我知道如何创建新进程并设置参数,但是通过这种方式,我需要指出应用程序的路径,并且我希望拥有一个可移植的应用程序,而不必每次都设置应用程序的路径我在其他计算机上使用该应用程序。我的想法是,我希望计算机已安装pdf阅读器,并且只说打开页面的内容。

谢谢。


阅读 488

收藏
2020-05-19

共1个答案

一尘不染

如果要使用默认应用程序打开文件,我的意思是如果不指定Acrobat或Reader,则无法在指定页面中打开文件。

另一方面,如果可以指定Acrobat或Reader,则继续阅读:


您可以这样做,而无需告知完整的Acrobat路径,如下所示:

Process myProcess = new Process();    
myProcess.StartInfo.FileName = "acroRd32.exe"; //not the full application path
myProcess.StartInfo.Arguments = "/A \"page=2=OpenActions\" C:\\example.pdf";
myProcess.Start();

如果您不希望使用Reader而是使用Acrobat打开pdf,请按以下方式更改第二行:

myProcess.StartInfo.FileName = "Acrobat.exe";

您可以查询注册表以标识打开pdf文件的默认应用程序,然后在进程的StartInfo上相应地定义FileName。

请遵循此问题以获取有关执行此操作的详细信息:查找用于在Windows上打开特定文件类型的默认应用程序

2020-05-19