易语言高精度完美延时的源码

DLL命令表

.版本 2
.DLL命令 QueryPerformanceCounter, 整数型, "kernel32", "QueryPerformanceCounter", , 获取计数值
  .参数 lpPerformanceCount, LARGE_INTEGER
.DLL命令 QueryPerformanceFrequency, 整数型, "kernel32", "QueryPerformanceFrequency", , 返回计数频率
  .参数 lpFrequency, LARGE_INTEGER

自定义数据类型表

.版本 2
.数据类型 LARGE_INTEGER
  .成员 QuadPart, 整数型

高精度延时源码

.版本 2
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
真正的高精度延时 (1000) ' 延时1毫秒
.子程序 真正的高精度延时
.参数 要延时的时间, 整数型, , 微秒,1000微秒=1毫秒,1000毫秒=1秒
.局部变量 CurrTicks, LARGE_INTEGER
.局部变量 TicksCount, LARGE_INTEGER
QueryPerformanceFrequency (TicksCount)
QueryPerformanceCounter (CurrTicks)
' 这里一定要LARGE_INTEGER数据类型,如果直接写成整数型的话,是运行不了的
TicksCount.QuadPart = TicksCount.QuadPart × 要延时的时间 ÷ 1000000
TicksCount.QuadPart = TicksCount.QuadPart + CurrTicks.QuadPart
.判断循环首 (CurrTicks.QuadPart < TicksCount.QuadPart)
  QueryPerformanceCounter (CurrTicks)
.判断循环尾 ()
' 高精度延时, 是 CPU 测速的基础
' Windows 内部有一个精度非常高的定时器, 精度在微秒级, 但不同的系统这个定时器的频率不同, 这个频率与硬件和操作系统都可能有关。
' 利用 API 函数 QueryPerformanceFrequency 可以得到这个定时器的频率。
' 利用 API 函数 QueryPerformanceCounter 可以得到定时器的当前值。
' 根据要延时的时间和定时器的频率, 可以算出要延时的时间定时器经过的周期数。
' 在循环里用 QueryPerformanceCounter 不停的读出定时器值, 一直到经过了指定周期数再结束循环, 就达到了高精度延时的目的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 易语言送你999朵玫瑰花源码

    送你999朵玫瑰花 .版本 2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .局部变量 屏幕快照, 字节集 屏幕快照 = 快照 (, , ) _启动窗口.可视 = 真 _启动窗口.位置 = 3 画板1.移动 (0, 0, 取屏幕宽度 (), 取屏幕高度 ()) 画板1.底图 = 屏幕快照 置随机数种子 () 播放音乐 (#声音1, 真) 等待 (500) 献花 () .子程序 献花 .局部变量 a, 整数型 .局部变量 b, 整数型 .局部变量 c, 整数型 .局部变量 d, 整数

  • 易语言制作英雄联盟辅助的源码

    LOL辅助 此功能需要加载超级模块7.3 .版本 2 .程序集 窗口程序集_启动窗口 .程序集变量 pid, 整数型 .子程序 __启动窗口_创建完毕 pid = 取进程ID ("League of Legends.exe") 监视热键 (&开启无限视距, #F5键) 监视热键 (&关闭无限视距, #F6键) 监视热键 (&开启普攻范围, #F2键) 监视热键 (&关闭普攻范围, #F1键) 监视热键 (&开启炮塔范围, #F4键) 监视热键 (

  • 易语言枚举所有子窗口讲解

    在易语言开发中,有时想直接从一个窗口中拿取 窗口下所有控件的信息,可以用window知道的api入手,但是精益模块有带有这个功能哦. 窗口_枚举所有子窗口() 三个参数: 一.欲寻找控件的窗口句柄 二.查询出来的所有子窗口句柄数组 三.查询的控件类名 对于前两个参数,相信大家都知道,第一个就是 窗口的句柄,第二个就是 句柄的数组(这个是返回的数组)  . 至于第三个参数,楼主和大家一样,第一眼看到有点迷茫,不知道从何下手,比如编辑框控件的类名是什么?标签控件的类名是什么?这里有个好方法,让大家知

  • 易语言刷屏工具瞬间99+的代码

    刷屏工具 延时设置为1,信息瞬间99+ .版本 2 .支持库 eAPI .程序集 窗口程序集1 .子程序 _开始按钮_被单击 .判断循环首 (编辑框_内容.内容 ≠ "" 且 编辑框_延时.内容 ≠ "") 置剪辑板文本 (编辑框_内容.内容) 模拟按键 (#Ctrl键, #V键, ) 模拟按键 (#回车键, , ) 延时 (到整数 (编辑框_延时.内容)) .判断循环尾 () .子程序 _退出按钮_被单击 销毁 () 运行结果: 总结 以上就是这篇文章的全部内容了

  • 易语言调用接口查看QQ各项资料的代码

    DLL命令表 .版本 2 .DLL命令 ShellExecuteA, 整数型, "shell32.dll", "ShellExecuteA", , 查找与指定文件关联在一起的程序的文件名,并执行相关操作,成功则返一个大于31的值. .参数 hwnd, 整数型, , 用来指定被执行文件显示的窗口所属的父窗口句柄,可以为NULL .参数 lpOperation, 文本型, , 指向一个表示执行方式的字符串 .参数 lpFile, 文本型, , 用来指定文件名,文件名既可

  • 易语言获取程序已运行时间的代码

    获取程序已运行时间 .版本 2 .支持库 iext .程序集 窗口程序集1 .子程序 _时钟1_周期事件 .局部变量 hr, 整数型, 静态 .局部变量 min, 整数型, 静态 .局部变量 sec, 整数型, 静态 sec = sec + 1 .如果真 (sec = 60) sec = 0 min = min + 1 .如果真结束 .如果真 (min = 60) min = 0 hr = hr + 1 .如果真结束 状态条1.置文本 (0, "已运行:" + 取文本右边 ("

  • 易语言设置窗口透明化的代码

    窗口透明源码 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言打开与关闭输入法的代码示例

    DLL命令表 .版本 2 .DLL命令 GetKeyboardLayoutList, 整数型, , "GetKeyboardLayoutList" .参数 nBuff, 整数型 .参数 lplist, 整数型, 数组 .DLL命令 ActivateKeyboardLayout, 整数型, , "ActivateKeyboardLayout" .参数 HKL, 整数型 .参数 flags, 整数型 打开与关闭输入法 .版本 2 .程序集 窗口程序集1 .程序集变量 键

  • 易语言非递归算法遍历目录的代码示例

    非递归算法遍历目录 .版本 2 .支持库 shell .支持库 EDataStructure .支持库 iext .程序集 窗口程序集1 .子程序 _按钮_浏览_被单击 编辑框_目录.内容 = 浏览文件夹 ("选择目录:", 假) .子程序 枚举文件 .参数 目录, 文本型 .局部变量 队列, 队列 .局部变量 节点, 节点 .局部变量 节点1, 节点 .局部变量 路径, 文本型 .局部变量 文件夹名称, 文本型 .局部变量 文件名, 文本型 .局部变量 文件数目, 整数型 节点.加入

  • 易语言赋值定义多维数组的代码实例

    赋值定义多维数组示例 .版本 2 .程序集 窗口程序集1 .子程序 _按钮_显示_被单击 .局部变量 a, 整数型, , "0" .局部变量 c, 整数型, , "1,2" .局部变量 b, 整数型 a = { 1, 12, 2, 22, 3, 32, 4, 42 } .变量循环首 (1, 取整 (取数组成员数 (a) ÷ 2), 1, b) 重定义数组 (c, 真, b, 2) c [b] [1] = a [b × 2 - 1] 编辑框_显示.加入文本 (&quo

随机推荐