精易论坛

标题: 每次系统开机只允许运行1次 [打印本页]

作者: afu45    时间: 2022-8-7 20:32
标题: 每次系统开机只允许运行1次
本帖最后由 afu45 于 2022-8-8 10:09 编辑

每次启动执行1次.e (926.95 KB, 下载次数: 11)

主要是根据GetTickCount 来获取系统启动时间(毫秒级) 来判断
配置文件放在运行目录只是为了方便查看,这里仅提供一个方法,你把数据保存zc表也可以,不要再出现说删配置文件的老六了

  
.版本 2.支持库 spec
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
上次时间长整数型 
系统启动时间整数型 
系统启动时间戳整数型 
配置时间戳整数型 
配置文件文本型 
系统启动时间 = GetTickCount64 () ÷ 1000
系统启动时间戳 = 到整数 (时间_取北京时间戳 ()) - 系统启动时间
配置文件 = 取运行目录 ()“\config.ini”
调试输出 (系统启动时间)
上次时间 = 到整数 (读配置项 (配置文件, “config”, “time”, “0”))
如果 (上次时间 = 0)
写配置项 (配置文件, “config”, “time”, 到文本 (系统启动时间))
写配置项 (配置文件, “config”, “begintime”, 到文本 (系统启动时间戳))


如果 (GetTickCount64 () > 上次时间)
写配置项 (配置文件, “config”, “begintime”, 到文本 (系统启动时间戳))
信息框 (“玩去”, 0, , )
结束 ()


配置时间戳 = 到整数 (读配置项 (配置文件, “config”, “begintime”, “0”))
如果 (时间接近 (配置时间戳, 系统启动时间戳))
信息框 (“玩去”, 0, , )
结束 ()


写配置项 (配置文件, “config”, “time”, 到文本 (系统启动时间))
写配置项 (配置文件, “config”, “begintime”, 到文本 (系统启动时间戳))



子程序名返回值类型公开备 注
时间接近逻辑型 
参数名类 型参考可空数组备 注
时间戳1整数型
时间戳2整数型
' 由于存在误差 所以允许±5秒   不会5秒钟重启1次吧
如果 (取绝对值 (时间戳2 - 时间戳2) ≤ 5)
返回 ()
返回 ()



补充内容 (2022-8-9 08:17):
如果 (取绝对值 (时间戳2 - 时间戳2) ≤ 5)
改为
如果 (取绝对值 (时间戳2 - 时间戳1) ≤ 5)
作者: 神女软件定制    时间: 2022-8-7 20:51

作者: afu45    时间: 2022-8-7 20:55
神女软件定制 发表于 2022-8-7 20:51
不太多吧,二次开机,等很久,就无法运行

为什么会等很久
作者: jysoft2022    时间: 2022-8-7 21:11
谢谢分享
作者: Suky    时间: 2022-8-7 22:00
把配置文件给你删咯,然后运行
作者: 神女软件定制    时间: 2022-8-7 23:04
afu45 发表于 2022-8-7 20:55
为什么会等很久

比如,第一次刚开机10秒运行,配置项写入10000
第二次,开机,过了20秒尝试运行,20000>10000,就无法运行
作者: afu45    时间: 2022-8-7 23:37
每次启动执行1次.e (926.95 KB, 下载次数: 16)
这个是优化后的

作者: QQ1329127360    时间: 2022-8-7 23:58
用网络时间判断更好吧
作者: happyweeks365    时间: 2022-8-8 06:30
6666666666666666
作者: pjm123    时间: 2022-8-8 07:51
谢谢分享
作者: 达人秀110    时间: 2022-8-8 10:01
别人改下配置直接上
作者: 59hdvj    时间: 2022-8-8 15:04
感谢分享
作者: ttggnn    时间: 2022-8-8 15:39
支持                          
作者: sdif000    时间: 2022-8-8 16:18

作者: 深圳梦    时间: 2022-8-8 16:46
支持开源~!感谢分享
作者: kingtt    时间: 2022-8-9 14:53
本帖最后由 kingtt 于 2022-8-9 14:55 编辑

发了两个
作者: kingtt    时间: 2022-8-9 14:54
本帖最后由 kingtt 于 2022-8-9 14:56 编辑

出自:https://125.confly.eu.org/forum.php?mod ... A%E9%87%8D%E5%90%AF  易语言判断计算机重启源码
这是前几天问答区有人问过的吧,这个功能论坛里早就有了,比你这个简单多了,先加个DLL命令
  
DLL命令名返回值类型公开备 注
MoveFileExA 
DLL库文件名:
 
在DLL库中对应命令名:
MoveFileExA
参数名类 型传址数组备 注
CCAV文本型
null整数型
Sky_angel整数型



然后...

  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
如果 (文件是否存在 (取运行目录 ()“\记录.txt”))
MoveFileExA (取运行目录 ()“\记录.txt”, 0, 4)
信息框 (“您没有重新启动计算机,请重新启动计算机后再使用!”, 16, )
结束 ()
写到文件 (取运行目录 ()“\记录.txt”, 到字节集 (“”))


作者: afu45    时间: 2022-8-9 15:23
本帖最后由 afu45 于 2022-8-9 20:41 编辑

再次精简优化,主帖子不能再编辑了,就发这里吧
另外 时间_取北京时间戳 (真) 延时较大 换掉了  【狗头】

  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
上次时间长整数型 
本次时间整数型 
配置文件文本型 
配置文件 = 取运行目录 ()“\config.ini”
上次时间 = 到整数 (读配置项 (配置文件, “config”, “begintime”, “0”))
本次时间 = 取时间戳 ()GetTickCount64 () ÷ 1000
如果 (时间接近 (上次时间, 本次时间))
信息框 (“玩去”, 0, , )
结束 ()
写配置项 (配置文件, “config”, “begintime”, 到文本 (本次时间))

子程序名返回值类型公开备 注
时间接近逻辑型 
参数名类 型参考可空数组备 注
时间戳1整数型
时间戳2整数型
' 由于存在误差 所以允许±5秒   不会5秒钟重启1次吧
如果 (取绝对值 (时间戳1 - 时间戳2) ≤ 5)
返回 ()
返回 ()

子程序名返回值类型公开备 注
取时间戳长整数型 
变量名类 型静态数组备 注
初始时间日期时间型 
时间戳长整数型 
初始时间 = 增减时间 (到时间 (“1970-01-01-00-00-00”), #小时, 8)
返回 (到整数 (取时间间隔 (取现行时间 (), 初始时间, #秒 )))

每次启动执行1次 优化.e (922.36 KB, 下载次数: 43)






作者: 豫源    时间: 2022-8-9 16:19
感谢分享,支持开源
作者: jintai11    时间: 2022-8-9 17:07
感谢!!!!!!!!!!感谢
作者: 明天自然醒    时间: 2022-8-9 20:09
afu45 发表于 2022-8-9 15:23
再次精简优化,主帖子不能再编辑了,就发这里吧

[e=0].版本 2

GetTickCount64 是毫秒级的取启动时间吗,如果是的话,那达不到每次开机只允许启动一次的效果,我间隔大于五秒不就可以二次启动了吗。。。

再说了,启动次数和启动时间没有关系吧,要是我恰好每次开机启动时的启动时间恰好相等,那不就误判了吗
作者: afu45    时间: 2022-8-9 20:35
l1299587332 发表于 2022-8-9 20:09
GetTickCount64 是毫秒级的取启动时间吗,如果是的话,那达不到每次开机只允许启动一次的效果,我间隔大 ...

GetTickCount64 是毫秒级的

这里没必要按毫秒,是按5秒的误差判断的

经过测试 时间_取北京时间戳 () 耗时太长误差较大
可以替换成


  
子程序名返回值类型公开备 注
取时间戳长整数型 
变量名类 型静态数组备 注
初始时间日期时间型 
时间戳长整数型 
初始时间 = 增减时间 (到时间 (“1970-01-01-00-00-00”), #小时, 8)
返回 (到整数 (取时间间隔 (取现行时间 (), 初始时间, #秒 )))


作者: 三克油    时间: 2022-8-9 20:43
谢谢楼主!收藏了。
作者: npcwu    时间: 2022-8-9 23:38
6666666666666666666
作者: 小李吃不饱    时间: 2022-8-10 08:09
下载看看
作者: panda92    时间: 2022-8-10 09:17

下载看看
作者: ttggnn    时间: 2022-8-10 15:17
支持一下
作者: 敬你    时间: 2022-8-11 22:32
开源精神必须支持~
作者: ttggnn    时间: 2022-8-14 17:35
感谢分享
作者: 空竹    时间: 2022-9-7 18:18
配置文件名

我用的 硬盘序列号 再加密

这样一机一个文件名  

要破J的也得 破我的 加密,,
作者: nbhh66    时间: 2022-12-7 17:04
5124123r4432222222
作者: 清风徐来2    时间: 2022-12-14 12:10
感谢分享
作者: junhai    时间: 2023-11-1 10:43
谢谢!!!!!!!!!!




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