C#Process.start打开应用程序但不打开文件

时间:2017-07-31 10:15:35

标签: c#

我有一个IE插件,可以在有pdf链接的页面中添加按钮,并在点击时在特定应用程序中打开它们。

让我们说我需要在abc.exe应用程序中打开一个xyz.pdf文件。 abc不是文件类型.pdf的默认应用程序。

在一台机器中,以下工作

Process p = Process.Start("pathtoabc.exe", "pathtoxyz.pdf");

在另一台机器上,只有当我将abc.exe作为默认应用程序然后使用下面的

时,它才有效

Process p = Process.Start("pathtoxyz.pdf");

你可以给我任何指示吗?我也试过使用ProcessStartInfo而没有改变

更新

我尝试使用带参数的默认Acrobat阅读器

processstartinfo的参数如下所示" C:\ PDF Files \ Professional-Letters-Guide.pdf"

FileName =" C:\ Program Files(x86)\ Adob​​e \ Acrobat Reader DC \ Reader \ AcroRd32.exe"

结果 - Acrobat reader打开但出现错误消息"找不到文件"。虽然可以在路径中找到。

解决: 它是Foldername中的一个空间..通过用引号括起文件名来解决它" \""

谢谢大家的建议......他们帮助我思考。

2 个答案:

答案 0 :(得分:0)

Process.Start的第二个参数传递给您尝试启动的应用程序,它不会使用此应用程序“pathtoabc.exe”打开文件,除非应用程序“pathtoabc.exe”接受文件名为启动论证。

因此,您需要检查您尝试使用的应用程序是否支持此类参数。

答案 1 :(得分:0)

您是否尝试使用引号和文件的完整路径限定Process.StartInfo.Arguments值?那么WorkingDirectory属性呢?此外,关于确认应用程序被称为支持命令行参数的先前断言是绝对有效的。您可能会因为特定于计算机的操作系统文件扩展名关联而误以为它会这样做。