vb 检测鼠标是否按下,如果按下则停止程序
VB检测鼠标是否按下,如果按下则停止程序这个程序是从文件读数据,文件中有1900000个数据,然后读125个发数据并画图。Foriu=0To1900000Step3X=X...
VB检测鼠标是否按下,如果按下则停止程序
这个程序是从文件读数据,文件中有1900000 个数据,然后读125个发数据并画图。
For iu = 0 To 1900000 Step 3
X = X + 1
C1 = X / 125
If C1 = Int(C1) Then '取所要取得的字节的倍数。
For xx = 0 To 24
DispData = b2(xx)
Call AdVance
Next xx
Call Senddata
For xx = 25 To 124
DispData = b2(xx)
Call AdVance
Next xx
《 'Call 检测鼠标是否按下,如果按下则停止程序。》
End If
Next iu
现在是程序一直跑直到文件读完,中间想操作让她停下来,无法操作。
就是鼠标在程序上操作不了,查了下资料说用Hook.DLL可以解决,但是不会用。不知道怎么样把《 'Call 检测鼠标是否按下,如果按下则停止程序。》写出来.
高手们指点. 展开
这个程序是从文件读数据,文件中有1900000 个数据,然后读125个发数据并画图。
For iu = 0 To 1900000 Step 3
X = X + 1
C1 = X / 125
If C1 = Int(C1) Then '取所要取得的字节的倍数。
For xx = 0 To 24
DispData = b2(xx)
Call AdVance
Next xx
Call Senddata
For xx = 25 To 124
DispData = b2(xx)
Call AdVance
Next xx
《 'Call 检测鼠标是否按下,如果按下则停止程序。》
End If
Next iu
现在是程序一直跑直到文件读完,中间想操作让她停下来,无法操作。
就是鼠标在程序上操作不了,查了下资料说用Hook.DLL可以解决,但是不会用。不知道怎么样把《 'Call 检测鼠标是否按下,如果按下则停止程序。》写出来.
高手们指点. 展开
4个回答
展开全部
想让我给你写的话,是要银子的,应为按键精灵的精华都在这个小小的函数中,你看过后就会明白怎么写按键挂,不过可以给你提示一下, Call AdVance这个函数时,可以在这个函数中做文章,
比如在函数中用API查看鼠标是否按下,VB也有这样的函数,不过没有API好而已,若按下则去处理想应的过程,没有则反回继续
比如在函数中用API查看鼠标是否按下,VB也有这样的函数,不过没有API好而已,若按下则去处理想应的过程,没有则反回继续
更多追问追答
追问
多少银子?QQ:519811010.郁闷真不知道怎么整了.
追答
可怜的人,我给你说个API函数,想你会用这些吧,
GetAsyncKeyState
用它可以取得键盘和鼠标的按键情况,好好用吧,超有用的,
我的QQ390539311
不过你要说明你是什么人,为什么加我,不然会被踢的,而且我不一定有时间帮你噢,哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在你需要的地方加入 doevent,以将控制权交还用户,此时可以响应mousedown,或点击“停止按钮”
更多追问追答
追问
能给点代码提示不?不会用那个doevent,在网上找的doevent,用在程序里边不起作用。
追答
复制粘贴vb的帮助给你吧,代码我验证过了!
使用 DoEvents
尽管 Timer 事件是后台处理的最好工具,对耗时极多的任务,情况更是如此,但是,DoEvents 函数还是提供了一种取消任务的简便方法。例如,下列代码将显示一个 "Process" 按钮,单击这个按钮时,它将变成 "Cancel" 按钮。再次单击按钮又将中断正在执行的任务。
'此按钮最初的标题是 "Process"。
Private Sub Command1_Click()
'过程的所有实例都
'共享静态变量。
Static blnProcessing As Boolean
Dim lngCt As Long
Dim intYieldCt As Integer
Dim dblDummy As Double
'按下按钮时,检测是否
'已经在处理。
If blnProcessing Then
'如果正在处理,则取消处理。
blnProcessing = False
Else
Command1.Caption = "Cancel"
blnProcessing = True
lngCt = 0
'执行一百万次浮点
'乘法计算。每一千次后,
'检测是否要取消。
Do While blnProcessing And (lngCt < 100000000)
For intYieldCt = 1 To 1000
lngCt = lngCt + 1
dblDummy = lngCt * 3.14159
Next intYieldCt
'DoEvents 语句允许其它事件
'发生,包括第二次
'按此按钮。
DoEvents
Loop
blnProcessing = False
Command1.Caption = "Process"
MsgBox lngCt & " multiplications were performed"
End If
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用多线程
单线程不容易停
单线程不容易停
追问
没研究出来,能给点例子不,十分感谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么不用 控件的mousedown事件呢?
追问
程序一直在运行,控件的mousedown事件根本不起作用。
追答
在循环当中,加上对系统消息的判断即可。实际上一个Doevent就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询