在循环中间关闭我的应用程序时出错

时间:2013-04-18 04:42:57

标签: vb.net do-while

这是我的循环代码:

Do While potsStatus = True
Dim ForeGroundHwnd As IntPtr = GetForegroundWindow
Dim MySearchWinow As IntPtr = FindWindow(Nothing, SearchWindow)
If ForeGroundHwnd = MySearchWinow Then
    If rbQ.Checked = True Then
        keybd_event(vbKeyQ, 0, 0, 0)
        keybd_event(vbKeyQ, 0, KEYEVENTF_KEYUP, 0)
        Thread.Sleep(1)
    ElseIf rbW.Checked = True Then
        keybd_event(vbKeyW, 0, 0, 0)
        keybd_event(vbKeyW, 0, KEYEVENTF_KEYUP, 0)
        Thread.Sleep(1)
    ElseIf rbE.Checked = True Then
        keybd_event(vbKeyE, 0, 0, 0)
        keybd_event(vbKeyE, 0, KEYEVENTF_KEYUP, 0)
        Thread.Sleep(1)
    ElseIf rbR.Checked = True Then
        keybd_event(vbKeyR, 0, 0, 0)
        keybd_event(vbKeyR, 0, KEYEVENTF_KEYUP, 0)
        Thread.Sleep(1)
    End If
End If

问题是当循环运行并且我退出/关闭它遇到错误的应用程序时,进程保持不变并且循环永远不会结束。我唯一能做的就是在任务管理器中手动停止该过程。我希望有人可以帮助我。

编辑:解决了。我在Form Closing事件中使循环为false。感谢。

1 个答案:

答案 0 :(得分:2)

查看您的代码,我无法看到您将potsStatus设置为false的任何地方(旁边您不需要说Do While potsStatus = True,您可以说Do While potsStatus) 。你需要做的是让你的循环知道它需要停止的一些机制。

因此,在表单关闭事件中,您可以将potsStatus设置为false(假设它是表单范围的变量)。这种看起来像是一个很好的Thread候选人虽然没有更好地了解我无法肯定的代码。