vb怎么暂停程序?

 我来答
帐号已注销
2015-12-28 · TA获得超过732个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:96.4万
展开全部
使用OpenProcess打开进程,然后用ToolhelpAPI的CreateToolhelp32Snapshot函数创建线程快照,然后用Thread32First和用Thread32Next枚举该进程的线程,对于枚举出来的该进程的每个线程结构中获取线程ID,用OpenThread打开线程,用SuspendThread挂起该线程。当该进程的所有线程被挂起,该进程就被挂起了,也就被暂停了。反之,想恢复该进程,只需用函数ResumeThread恢复该进程的所有线程即可。 以上的做法是因为win32子系统没有导出SuspendProcess函数,只能绕个弯实现,可在Native API,却有该函数,函数名为ZwSuspendProcess(也可能是SuspendProcess,我用手机写这个的,没电脑,没法查,反正有一个是对的,你可以用VS里的工具DEPEND查查看函数名),在ntdll.dll被导出,该函数可以在vb中使用,不过得自己写声明,他的声明和SuspendThread几乎是一样的,就是句柄是进程句柄而不是线程句柄而已,与之对于的是ZwResumeProcess(也可能是ResumeProcess)。
sbj518
推荐于2016-03-28 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5330万
展开全部
Declare Function GetTickCount Lib "kernel32" () As Long

Public Shared Sub Pause(ByVal HowLong As Long)
'单位为毫秒
Dim tick As Long
tick = GetTickCount()
Do
Application.DoEvents()
Loop Until tick + HowLong < GetTickCount
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胖次vs胖次
2015-12-28
知道答主
回答量:22
采纳率:0%
帮助的人:6.2万
展开全部
dim isstop as boolean'这个放在最上面
private sub command1_click()
isstop = true
end sub
sub main()
for j=0 to 1000000
if isstop = true then isstop = false:exit for
sum=sum+j
doevents
next
end sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2Hurric
2015-12-28 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:26.4万
展开全部
ctrl +break
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式