学了几天易语言,写了个关机小程序
本帖最后由 七夕的乌鸦 于 2022-11-22 12:04 编辑刚学了几天的易语言,试着写了个关机小程序,测试的时候忘了保存代码了,相当于又重新写的
我只会写关机的,在同一页的代码里写重启,睡眠等这些功能,我还不会。
一旦开始运行,想取消的话,点右上角的X,取消功能暂时不会写。
全部代码就这么多:
这个是外观,为啥要用俩计时器,是因为另外一个计时器用来在窗口的标题显示倒计时,弹出窗口的倒计时我不会写,只能这么弄了。
下面是运行测试,标题的倒计时是每秒会变的。
最后编译的时候能编译,但是提示我,让我使用正版。
测试过了,能用,第一次测试的时候没保存代码,还好没多少代码,照着记忆很快就写出来了。
本帖最后由 七夕的乌鸦 于 2022-11-22 23:31 编辑
给自己置个顶,简单说下我的思路吧,希望对跟我一样的新手有帮助。
既然是定时软件,要读秒,肯定要循环,所以就用时钟。先不管其他就在时钟里写代码
既然是读秒,肯定最后要读到0秒,就关机。秒是什么,不知道,就声明变量,秒 整数型,
如果(秒=0)注释:给秒声明变量,秒 整数型,并且做个判断,成立就关机
秒 = 秒 - 1 注释:既然是读秒,1秒1循环,假设给秒赋值10,每次循环运行一次自身减一,正好达到读秒的效果
秒 =(小时 * 60 + 分钟 )* 60 + 秒 注释:小时候学过的,先乘除再加减。算完之后就是秒的值,
如果 (小时 ≠ 0 且 分钟 ≠ 0) 注释:因为每秒都要循环运行一次,循环之前做个判断,
秒 = (小时 × 60 + 分钟) × 60 + 秒 填写的有小时,有分钟这俩必须都要有,条件成立就运行,
小时 = 0 运行完之后,小时和分钟就转换成秒了,也就成了0
分钟 = 0 小时和分钟成0之后这个判断就没用了,每次运行到这就让它跳过去。
这里说明一下,整数型的变量默认值为:0
.如果 (分钟 ≠ 0) 注释:接上一段判断不成立,就到这了,然后再继续判断,
秒 = 分钟 × 60 + 秒 填写的有分钟条件成立就运行,运行完之后,分钟就转换成秒了,也就成了0
分钟 = 0 分钟成0之后这个判断就没用了,每次运行到这就让它跳过去。
写到这里,代码基本上就全部结束了,就差一个关机命令了。
···········································································································································································································································································································
完整的代码:
╭┄┄┄┄┄┄┄ 如果 ( 小时 ≠ 0 且 分钟 ≠ 0)
┆ 秒 = (小时 × 60 + 分钟) × 60 + 秒
┆ 小时 = 0
┆ ╭ ┄┄┄┄┄分钟 = 0
╰┄┆┄┄┄┄→
┆ 如果 (分钟 ≠ 0)
┆╭ ┄┄┄
┆┆ 秒= 分钟 × 60 + 秒
┆┆ ╭┄分钟 = 0
┆╰┄┄┆→
┆ ↓
↓
秒 = 秒 - 1
╭┄┄┄┄┄┄如果 (秒 = 0)
┆ ╭┄┄关闭系统 (#关机, )
╰┄┆┄→
↓
··················································································································································································································································································································
然后我发现有一个bug,我调试的时候都没发现的bug
就是我没写单独判断小时的,如果给小时赋值,这个小时是没用的。
举例:
小时分钟 秒
1 0 10
正常来判断的话先判断:
如果 (小时 ≠ 0 且 分钟 ≠ 0) 注释:小时和分钟都不为0时运行。不成立,跳过
如果 (分钟 ≠ 0) 注释:分钟不为0时运行。不成立,跳过
这俩都跳过了之后发现没有给小时转成秒的代码,那就默认小时就是0
然后跳到了:
秒 = 秒 - 1 注释:到这里,秒就只有10了,所以就是10=10 - 1 为 9
然后继续:
.如果 (秒 = 0) 注释:上面得出秒的值为:9,9=1 不成立,跳过下面的关机代码
关闭系统 (#关机, ) 注释:这行代码是查支持库找出来的,主要作用,关机,运行这行代码就相当于你用手戳了一下电脑的关机键
到这里,一次时钟周期就运行完了,也就是一次循环就完整运行完了。 哎呦不错 好计策全部化秒然后一下一下减出去减到0就关机好计谋不过呢 有些电脑卡或者其他意外情况 个人感觉把秒≤0 这样判断比较好等于0关机 万一卡了 跳到比0小的-1也照样关机然后 试试如果真 这个命令如果真(秒≤0)然后写关机代码 就行了取消写法很简单时钟周期=0 就是停止时钟运行鼠标移到组件属性栏 F1 下面有解释 常看看 有帮助 还有些代码命令 选中按F1 也会出解释 非常感谢楼主
确实厉害 继续加油哦 我也用的这个配色{:1_893:} 楼主不简单 方便多了,省的win+ r了哈哈哈哈,下载下载 谢谢分享,跟你学习 很好用 谢谢楼主 留着学习用
留着学习用