错误“来源:系统进程已退出,因此请求的信息不可用”

时间:2013-01-29 06:22:15

标签: vb.net process

它可以在我的电脑上运行,但是当我放入另一台机器时,我收到错误“来源:系统进程已退出,因此请求的信息不可用”& exe没有出来。任何有经验的兄弟都可以提理解!

        p = New Process
            With p
                .EnableRaisingEvents = True
                .StartInfo.FileName = Application.StartupPath & "\EXE\CDMObjectSelection\CDMObjectSelection.exe"
                .StartInfo.Arguments = strArgs
                .StartInfo.ErrorDialog = True
                .StartInfo.WindowStyle = ProcessWindowStyle.Normal
                .StartInfo.UseShellExecute = True
                .Start()
            End With

            p.WaitForInputIdle()

            While (ginthwnd = IntPtr.Zero)
                System.Threading.Thread.Sleep(100)
                p.Refresh()
                ginthwnd = p.MainWindowHandle
            End While

2 个答案:

答案 0 :(得分:0)

如果您在调试器中使用此代码或将其包装在try/catch块中,您可能会发现异常发生在p.WaitForInputIdle()行上。作为MSDN states:当进程已经退出时抛出此异常。尝试使用try/catch打包并处理InvalidOperationException

MSDN还说“如果进程没有消息循环,WaitForInputIdle会抛出InvalidOperationException”。确保您正在调用的进程有一个消息循环。

See this answer了解如何正确关闭流程。

答案 1 :(得分:0)

确保在正确的体系结构上构建应用程序。 例如,如果将应用程序构建为64位应用程序并在32位操作系统上运行,则会出现此错误。如果可以,将您的应用程序构建为32位和64位(任何CPU),则无需担心。