这是我的循环代码:
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。感谢。答案 0 :(得分:2)
查看您的代码,我无法看到您将potsStatus
设置为false的任何地方(旁边您不需要说Do While potsStatus = True
,您可以说Do While potsStatus
) 。你需要做的是让你的循环知道它需要停止的一些机制。
因此,在表单关闭事件中,您可以将potsStatus
设置为false(假设它是表单范围的变量)。这种看起来像是一个很好的Thread
候选人虽然没有更好地了解我无法肯定的代码。