没有应用程序与此操作的指定文件关联(VB.NET)
我们有一个Win Forms应用程序,它使用iTextSharp生成pdf,将其保存到本地目录,然后应用程序打开该文件。对于一个客户(所有XP设备和AdobeReader11),它抛出以下错误没有应用程序与此操作的指定文件关联(VB.NET),vb.net,winforms,pdf,Vb.net,Winforms,Pdf,我们有一个Win Forms应用程序,它使用iTextSharp生成pdf,将其保存到本地目录,然后应用程序打开该文件。对于一个客户(所有XP设备和AdobeReader11),它抛出以下错误 No application is associated with the specified file for this operation at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
No application is associated with the specified file for this operation
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
这表明AdobeReader与pdf扩展没有正确的关联,只是他们可以导航到本地目录并打开文件而没有任何问题
以前有人见过这种怪事吗
编辑re 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
您读错了错误消息。我在相关部分增加了重点: 没有应用程序与此操作的指定文件相关联 这意味着没有与动词“Open”关联的应用程序。将代码更改为仅使用空字符串(或不设置)动词
:
P.StartInfo.FileName = vOutput
P.StartInfo.Verb = ""
P.Start()
这将使用.pdf格式的默认操作,该操作将与用户在Windows资源管理器中双击该文件时获得的操作相匹配
Acrobat的最新版本将默认操作设置为“使用Adobe Reader XI打开”,而不仅仅是“打开”,如果右键单击.pdf文件,您可以看到这一点
这似乎是导致“未关联此操作”错误的原因。当打开文件的默认行为与打开文件的相对行为之间存在差异时,实际上会发生此错误。
例如,如果您选择了默认应用程序以Internet Explorer的形式打开.pdf文件,并且尝试使用Process.Start()方法打开同一文件。您将收到一个异常,因为按照默认操作,它应该在Internet Explorer中打开该文件,而您的应用程序正试图使用Adobe reader打开该文件
若要更正此错误,请将.pdf文件的默认应用程序设置为Adobe Reader,您将不会再收到此错误。startinfo中的值是多少?
?肯-谢谢-我怀疑这就是答案。我在本地试用过,没有任何不良影响,并上传了一个新版本供客户试用-如果这样做有效,我们必须跟踪所有实例并修改它们-希望很快就会回来标记。非常奇怪的事情——席曦在7和8更新中的表现很好。再次感谢你——如果我用这个,几个星期来我都会把头撞在墙上!很高兴我能帮忙。:-)我以前被咬过,所以它引起了我的注意。你能更具体一点吗?我觉得你在做一些事情,但如果你能分享我们需要设置的特定代码或属性来实现这一点,这会有所帮助。非常感谢。