Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有应用程序与此操作的指定文件关联(VB.NET)_Vb.net_Winforms_Pdf - Fatal编程技术网

没有应用程序与此操作的指定文件关联(VB.NET)

没有应用程序与此操作的指定文件关联(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)

我们有一个Win Forms应用程序,它使用iTextSharp生成pdf,将其保存到本地目录,然后应用程序打开该文件。对于一个客户(所有XP设备和AdobeReader11),它抛出以下错误

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更新中的表现很好。再次感谢你——如果我用这个,几个星期来我都会把头撞在墙上!很高兴我能帮忙。:-)我以前被咬过,所以它引起了我的注意。你能更具体一点吗?我觉得你在做一些事情,但如果你能分享我们需要设置的特定代码或属性来实现这一点,这会有所帮助。非常感谢。