繁体   English   中英

如何调试“静默”进程失败?

[英]How do I debug a "silent" Process failure?

我正在打印这样的 PDF 文件。 它适用于我的大多数打印机:

Public Sub PrintFile(ByVal uPath As String, ByVal uPrinter As String)

    Dim psi As New ProcessStartInfo
    psi.WindowStyle = ProcessWindowStyle.Normal
    psi.Verb = "printto"
    psi.Arguments = uPrinter
    psi.CreateNoWindow = False
    psi.FileName = uPath

    Dim nProc As New Process
    nProc.StartInfo = psi
    nProc.Start()

    If nProc Is Nothing Then
        MsgBox("failed!!!")
    End If

    DoSleep(3000)

    Do While Not modEnvironment.IsPrinterQueueEmpty()
        DoSleep(2000)
    Loop

    Try
        nProc.CloseMainWindow()
    Catch ex As Exception
         Debug.Assert(False)
    End Try
    nProc.Close()

End Sub

这适用于某些打印机。

对于一台打印机,它不起作用。 我给它的名字是

"Canon MB2700 series Printer Wifi"

可以猜到,它是一台 Wifi 打印机。 但我不知道 Wifi 打印机的处理方式必须与本地连接的打印机不同。

没有明显的错误抛出或不同的进程退出代码,它只是不打印。

我一遍又一遍地比较打印机名称,我没有看到任何明显的拼写错误。

这就是为什么我想问在这种情况下如何调试出了什么问题。

谢谢!

我知道了!!!

psi.Arguments = chrw(34) & uPrinter & chrw(34)

显然空格是个问题,所以名字必须放在“”中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM