以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  模拟鼠标点击,中间如何停止模拟执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183430)

--  作者:weibu
--  发布时间:2022/11/4 17:15:00
--  模拟鼠标点击,中间如何停止模拟执行
老师我做的执行模拟鼠标,可用按钮  pause = True 在for 。。。  next   执行中,随时停止执行。但在Sleep(2500)的这段时间,单击按钮很多时候没反应,应该如何解决?
If pause = True Then  用按钮控制代码暂停执行
        Return
End If


 For i As Integer = s - 1 To.Lines.Length - 1
 System.Threading.Thread.Sleep(2500)  ’我这个代码只是想等待2.5秒后执行下面代码,还有无其他代码同样效果,但不影响操作软件上的按钮
        SetCursorPos (r1("x"), r1("y")) \'鼠标位置
        mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) \'点击
        mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) \'点击
        mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
        System.Threading.Thread.Sleep(100)
        SendKeys.Send("{DEL}")
Next
[此贴子已经被作者于2022/11/4 21:11:30编辑过]

--  作者:有点蓝
--  发布时间:2022/11/5 8:59:00
--  
比如

For i As Integer = s - 1 To.Lines.Length - 1
Dim d As Date = Date.now
Do While pause = False AndAlso d.AddMilliseconds(2500) > Date.now
    Application.DoEvents
Loop
 SetCursorPos (r1("x"), r1("y")) \'鼠标位置
……