延迟方法(我使用的几种延迟方法!窗口不假死!!!)
作者:哪吒游戏网 来源:哪吒游戏网 2020-06-10 12:08:29
===================================华丽的分割线=========================================================
一、循环计算延迟
===================================华丽的分割线=========================================================
'模块代码:
Option Explicit
Public Declare Function GetTickCount Lib "kernel32" () As Long'获取windows启动以来经历的时间
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)'延时API函数
Dim time1 As Long
Dim time2 As Long
Public Sub Delay(ByVal Milliseconds As Long)'单位是毫秒
time1 = GetTickCount
Do
DoEvents'让系统处理其它事件
time2 = GetTickCount
If Milliseconds - (time2 - time1) >= 2 Then
Sleep 1'减少CPU
End If
Loop Until time2 - time1 >= Milliseconds
End Sub
-----------------------------------华丽的分割线---------------------------------------------------------
'主窗体代码:
Option Explicit
Private Sub Command1_Click()
call delay (2000)
msgbox("消息!")
End Sub
===================================华丽的分割线=========================================================
二、多线程延时
===================================华丽的分割线=========================================================
'模块代码:
Option Explicit
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)'延时API函数
Public Declare Function CreateThread Lib "kernel32" (nuil, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
'好像是结束线程
Public Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
'好像是创建线程
Public id As Long
Public Function aa()'这里放入要调用的代码
Sleep 2000 '这里是延迟时间
Form1.Caption = "123"
End Function
Public Sub 创建线程()
id = CreateThread(0, 0, AddressOf aa, 0, 0, id)
End Sub
Public Sub 卸载线程()
TerminateThread id, 0
End Sub
-----------------------------------华丽的分割线---------------------------------------------------------
'窗口代码:
Private Sub Command1_Click()
Call 创建线程
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call 卸载线程'一定要在结束程序时使用
End Sub
===================================华丽的分割线=========================================================
使用第二种方法在编译时候一定要设置为P-代码
另外还有第三种多进程(不是多线程!)的方法延迟方法延迟方法,但因为有点麻烦!想自动的话自己去百度ActiveX EXE 多线程,这里就不说了!
下次有空我会发全局热键、模拟键盘、模拟坐标、窗口句柄有关的代码!
写的好累给的安慰啊!!!
===================================华丽的分割线=========================================================
上一篇: 延迟方法(延迟网络的测试步骤以及延迟过高的解决方法)
- 1 魔兽世界 考古(魔兽世界考古毁一生?这些装备幻化和坐骑值得你去玩考古)
- 2 普罗霍洛夫(卢布危机下俄土豪大甩卖 卖完豪宅卖球队)
- 3 龙之谷手柄(《龙之谷手游》手柄怎么连接 柄连接教学攻略)
- 4 普罗霍洛夫(俄罗斯土豪准备20亿抛售篮网! 最烂老板是怎样炼成的?)
- 5 天联网(天联网信息科技有限公司怎么样?)
- 6 附魔大师(魔兽世界怀旧服附魔大师在哪 附魔大师位置分享介绍)
- 7 wow烹饪食谱(魔兽世界怀旧服烹饪极品食谱)
- 8 陶谦让徐州(陶谦三让徐州,世界上真有这样的好人吗?)
- 9 lol神圣之剑(LOL如果神圣之剑回归,谁最受益?第1:只要不瞎都能上钻石!)
- 10 陶谦让徐州(陶谦三让徐州的原因是什么?)

机械战警
坦克射击
梦道满V版
火箭精英3d免费版
太古灵诀
小小帝国无敌破解版
厉害了我的娃
乐高无限
侠影双剑九游版