1、先给小案例搭个界面,一个按钮可以启动脚本,中间我们的快捷键f2来进行暂停和再启动,注意要在界面上加一个热键控件,控件设置成不可见即可.
2、让我们先来写下按钮的click事件,点击按钮后我们开启一个子线程,子线程定义一个死循环,每半秒钟去更新下界面上的label,一直数数.
3、ok,效果还不错,接下去我们就要用热键F2事件去暂停这个计数器
4、双击热键控件,编写热键事件为暂停我们的子线程,注意在界面载入事件中设置一下热键键值,并将其注册
5、现在启动计数之后按f2,计数就会暂停了,让我们再稍微完善一下逻辑
6、加个变量来记录线程状态,热键事件为判断线程状态,未暂停则暂停,暂停了则继续
7、修改一个一开始的小bug,多线程编程时,开启线程一定要加保护,不然疯狂点开始按钮,线程就要爆炸了
8、还有强迫症的善后工作,在UnLoad事件中关闭子线程,注销热键.
9、id1 = 0Event Form1.Button1.Click If id1 = 0 Then id1 = BeginThread(thread1) End IfEnd Event Sub thread1 x = 1 Do Delay 500 Form1.Label1.Caption = x x = x + 1 LoopEnd SubEvent Form1.Load //设置停止线程的热键为:F2 Form1.Hotkey1.Virtualkey = 113 //注册热键;True为注册,False为销毁。 Form1.Hotkey1.Register TrueEnd Event//线程暂停状态,flase为没暂停,true为暂停了thread_pause_status = FalseEvent Form1.Hotkey1.Hotkey //如果线程暂停 If thread_pause Then //重启线程,修改标记 ContinueThread id1 thread_pause = False //如果线程没暂停 Else //暂停线程,修改标记 PauseThread id1 thread_pause = True End IfEnd EventEvent Form1.UnLoad //终止线程 StopThread id1 //销毁热键; Form1.Hotkey1.Register FalseEnd Event