ProcessStartInfo.CreateNoWindow不起作用

时间:2014-12-26 13:01:43

标签: vb.net process

我直接向打印机打印pdf,但我想在后台执行此操作。 目前一切正常,但你可以看到adobe正在启动并打开文档,而我希望它保持隐藏状态。

为此,我尝试使用:

Process1.StartInfo.CreateNoWindow = True

但它不会起作用,而我所做的一切都和写的一样: MSDN

提到你应该放置

psi.UseShellExecute = False

为了让CreateNoWindow工作,但是当我把它放在我的代码中时,我收到一条错误消息:系统找不到指定的文件,而没有这一行,它就可以工作。

您可以在下面找到整个代码:

            Dim Process1 As New System.Diagnostics.Process
            Dim psi As New ProcessStartInfo("AcroRd32.exe", "/t " + temppdf + " " + General.pdfprinter + "")
            'psi.UseShellExecute = False
            psi.CreateNoWindow = True
            Process1.StartInfo = psi
            Process1.Start()
            Process1.WaitForInputIdle()
            Process1.Kill()

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这个怎么样?

定义ShowWindow函数:

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As ShowWindowCommands) As Boolean
End Function

然后叫它:

Process1.Start()
ShowWindow(Process1.MainWindowHandle, 0)