精易论坛

标题: 易语言有没有办法判断系统是不是开启了变速齿轮或者加..... [打印本页]

作者: lengyanguan    时间: 前天 13:55
标题: 易语言有没有办法判断系统是不是开启了变速齿轮或者加.....
易语言有没有办法判断系统是不是开启了变速齿轮或者加速之类的程序,能判断的话,能不能给个例程

作者: 㠫孬嫑夯芘    时间: 前天 14:16
写一个延迟(1000),看一下延迟后的时间,是不是1000毫秒,就知道有没有变速,个人猜想
作者: afu45    时间: 前天 14:22
  
DLL命令名返回值类型公开备 注
QueryPerformanceCounter逻辑型 获取高精度计数器值
DLL库文件名:
kernel32
在DLL库中对应命令名:
QueryPerformanceCounter
参数名类 型传址数组备 注
lpPerformanceCount长整数型
DLL命令名返回值类型公开备 注
QueryPerformanceFrequency逻辑型 获取计数器频率
DLL库文件名:
kernel32
在DLL库中对应命令名:
QueryPerformanceFrequency
参数名类 型传址数组备 注
lpFrequency长整数型

子程序名返回值类型公开备 注
检测加速  
变量名类 型静态数组备 注
开始计数长整数型 
结束计数长整数型 
频率长整数型 
实际时间双精度小数型 
预期时间双精度小数型 
预期时间 = 1.0  ' 预期1秒
QueryPerformanceFrequency (频率)
QueryPerformanceCounter (开始计数)
延时 (1000)  ' 等待1秒
QueryPerformanceCounter (结束计数)
实际时间 (结束计数 - 开始计数) / 频率  ' 转换为秒
如果真 (实际时间 < 预期时间 × 0.7)
信息框 ("检测到时间加速!实际耗时:" + 到文本 (实际时间 × 1000) + "ms", #错误图标, "异常警告")


测试下,我没试过
作者: 憨憨问号    时间: 前天 16:43
一个思路,没试过,你可以试试看,软件启动时取一次现行时间,设置时钟每秒循环一次,每次循环+1秒,然后和现行时间对比,如果和现行时间不同说明呗变速了
作者: 憨憨问号    时间: 前天 16:58
测试完毕,可以检测到变速
  
窗口程序集名保 留  保 留备 注
窗口程序集_窗口1   
变量名类 型数组备 注
集_初始时间整数型  

子程序名返回值类型公开备 注
_窗口1_创建完毕  
集_初始时间 = 到整数 (时间_到时间戳 (取现行时间 (), 真, ))
启动线程 (&循环检测, , )
子程序名返回值类型公开备 注
循环检测  
变量名类 型静态数组备 注
现行时间整数型 
判断循环首 ()
延迟 (1000)
集_初始时间 = 集_初始时间 + 1
现行时间 = 到整数 (时间_到时间戳 (取现行时间 (), 真, ))
标签1.标题 = 到文本 (集_初始时间)“  ”到文本 (现行时间)
调试输出 (集_初始时间, 现行时间)
如果真 (集_初始时间 ≠ 现行时间)
信息框 (“被变速”, 0, , )

判断循环尾 ()


i支持库列表   支持库注释   
EThread多线程支持库
spec特殊功能支持库

补充内容 (2025-6-6 16:58):
这里之所以转换到时间戳是因为执行命令也会有毫秒级的延迟,这会导致每秒取现行时间和手动+1秒的时间出现出入

补充内容 (2025-6-6 16:59):
转换成时间戳方便一点,还不会出什么岔子

补充内容 (2025-6-6 17:16):
检测程序是否被变速齿轮加速思路
https://bbs.125.la/forum.php?mod=viewthread&tid=14857677
(出处: 精易论坛)

作者: 凌哥    时间: 昨天 09:33
软件启动的时候记录一下当前时间与网络时间的 差值,然后隔一段时间重新获取一边差值, 值越来越大的话说明被加速了
作者: 404错误    时间: 昨天 12:15
直接读变速齿轮修改的那俩api内存有没有变




欢迎光临 精易论坛 (https://bbs.125.la/) Powered by Discuz! X3.4