执行 WaitForExit() 时出现运行时错误

发布于 2024-12-02 09:34:15 字数 2450 浏览 0 评论 0原文

我正在尝试执行以下代码,但调试器在 myProcess.WaitForExit() 处失败

Sub BtnNowClick(sender As Object, e As EventArgs)

    Dim myProcess As Process
    Dim processFile As String = dlgFolder.SelectedPath
    Dim pyLocationDel As String = Path.Combine(dlgFolder.SelectedPath, "pdfmerge.py")

    Directory.SetCurrentDirectory(dlgFolder.SelectedPath)

    myProcess.Start("pdfmerge.py") 
    myProcess.WaitForExit()     
    System.IO.File.Delete(pyLocationDel)


End Sub

基本上,我想要的是检测进程是否已完成,并在以下情况下删除特定文件:过程完成。

我在尝试执行代码时收到此错误:

   System.NullReferenceException: Object reference not set to an instance of an object.
   at lgaPDF.MainForm.BtnNowClick(Object sender, EventArgs e) in C:\Documents and Settings\student3\My Documents\SharpDevelop Projects\lgaPDF\lgaPDF\MainForm.vb:line 184
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
   at lgaPDF.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81

I'm trying to execute the following code, but the debugger is failing at myProcess.WaitForExit()

Sub BtnNowClick(sender As Object, e As EventArgs)

    Dim myProcess As Process
    Dim processFile As String = dlgFolder.SelectedPath
    Dim pyLocationDel As String = Path.Combine(dlgFolder.SelectedPath, "pdfmerge.py")

    Directory.SetCurrentDirectory(dlgFolder.SelectedPath)

    myProcess.Start("pdfmerge.py") 
    myProcess.WaitForExit()     
    System.IO.File.Delete(pyLocationDel)


End Sub

Basically, what I want, is to detect for a process to be finished and delete a specific file if the process is finished.

I'm getting this error when trying to execute the code:

   System.NullReferenceException: Object reference not set to an instance of an object.
   at lgaPDF.MainForm.BtnNowClick(Object sender, EventArgs e) in C:\Documents and Settings\student3\My Documents\SharpDevelop Projects\lgaPDF\lgaPDF\MainForm.vb:line 184
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
   at lgaPDF.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水染的天色ゝ 2024-12-09 09:34:15

试试这个:

Sub BtnNowClick(sender As Object, e As EventArgs)

    Dim processFile As String = dlgFolder.SelectedPath
    Dim pyLocationDel As String = Path.Combine(dlgFolder.SelectedPath, "pdfmerge.py")

    Directory.SetCurrentDirectory(dlgFolder.SelectedPath)

    Dim myProcess As Process = Process.Start("pdfmerge.py") 
    myProcess.WaitForExit()     
    System.IO.File.Delete(pyLocationDel)


End Sub

Try this:

Sub BtnNowClick(sender As Object, e As EventArgs)

    Dim processFile As String = dlgFolder.SelectedPath
    Dim pyLocationDel As String = Path.Combine(dlgFolder.SelectedPath, "pdfmerge.py")

    Directory.SetCurrentDirectory(dlgFolder.SelectedPath)

    Dim myProcess As Process = Process.Start("pdfmerge.py") 
    myProcess.WaitForExit()     
    System.IO.File.Delete(pyLocationDel)


End Sub
何止钟意 2024-12-09 09:34:15
Dim myProcess As NEW Process 

myprocess 仅被声明,从未实例化

Dim myProcess As NEW Process 

myprocess is only declared, never instantiated

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文