【问题标题】:No application is associated with the specified file for this operation (VB.NET)没有应用程序与此操作的指定文件关联 (VB.NET)
【发布时间】:2014-01-28 16:59:38
【问题描述】:

我们有一个 Win Forms 应用程序,它使用 iTextSharp 生成 pdf,将其保存到本地目录,然后应用程序打开文件。对于一位客户(所有 XP 框和 Adob​​e Reader 11),它会引发以下错误

No application is associated with the specified file for this operation
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()

这表明 Adob​​e Reader 与 pdf 扩展名没有正确关联,除了它们可以导航到本地目录并毫无问题地打开文件。

以前有人遇到过这种怪事吗?

编辑 ZippyV - 典型子示例

 Public Sub PDF_Functions_LogCalls_RunReport(ByVal Customer As Boolean)
    Try
        Dim vOutput As String = LogCalls_Run(Customer)
        If Left(vOutput, 5) = "Error" Then
            TaskDialog.Show(MainForm, AppBoxError("File Error", vOutput, "Error"))
            Exit Sub
        End If
        If System.IO.File.Exists(vOutput) Then
            Dim P As New Process
            P.StartInfo.FileName = vOutput
            P.StartInfo.Verb = "Open"
            P.Start()
        End If
    Catch ex As Exception
        EmailError(ex)
        Exit Sub
    End Try
End Sub

【问题讨论】:

  • startinfo 中的值是什么?

标签: vb.net winforms pdf


【解决方案1】:

您正在阅读错误消息。我已经强调了相关部分:

没有应用程序与指定文件关联此操作

这意味着没有与动词“Open”相关的应用程序。更改您的代码以仅使用空字符串(或不设置)Verb

P.StartInfo.FileName = vOutput
P.StartInfo.Verb = ""
P.Start()

这将使用 .pdf 格式的任何默认操作,这将与用户在 Windows 资源管理器中双击文件时获得的操作相匹配。

最新版本的 Acrobat 将默认操作设置为“使用 Adob​​e Reader XI 打开”,而不仅仅是“打开”,您可以在右键单击 .pdf 文件时看到。

这似乎是导致“与此操作无关”错误的原因。

【讨论】:

  • Ken - 谢谢 - 我怀疑这就是答案。我已经在本地尝试过,它没有产生任何不利影响,并上传了一个新版本供客户尝试 - 如果可行,我们必须追踪所有实例并修改它们 - 希望很快就会回来标记它。真正奇怪的事情 - 在 Win 7 和 8 中与 XI 配合得很好
  • 更新 - 很好用。再次感谢你 - 我会用这个把我的头撞到墙上好几个星期!
  • 很高兴我能帮上忙。 :-) 我以前被这个咬过,所以它引起了我的注意。
【解决方案2】:

当打开文件的默认行为与打开文件的相对行为之间存在差异时,实际上会发生此错误。 例如,如果您选择了默认应用程序作为 Internet Explorer 打开 .pdf 文件,并且您尝试使用 Process.Start() 方法打开同一个文件。您将收到一个异常,因为根据默认操作,它应该在 Internet Explorer 中打开该文件,并且您的应用程序正在尝试使用 Adob​​e 阅读器打开它。

要纠正此问题,请将 .pdf 文件的默认应用程序设置为 Adob​​e Reader,您将不会再收到此错误。

【讨论】:

  • 您能说得更具体些吗?我觉得您正在做某事,但是如果您可以共享我们需要设置以实现此目的的特定代码或属性,那将有所帮助。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
相关资源
最近更新 更多