七夕的乌鸦 发表于 2022-11-22 11:56

学了几天易语言,写了个关机小程序

本帖最后由 七夕的乌鸦 于 2022-11-22 12:04 编辑

刚学了几天的易语言,试着写了个关机小程序,测试的时候忘了保存代码了,相当于又重新写的
我只会写关机的,在同一页的代码里写重启,睡眠等这些功能,我还不会。
一旦开始运行,想取消的话,点右上角的X,取消功能暂时不会写。
全部代码就这么多:


这个是外观,为啥要用俩计时器,是因为另外一个计时器用来在窗口的标题显示倒计时,弹出窗口的倒计时我不会写,只能这么弄了。


下面是运行测试,标题的倒计时是每秒会变的。



最后编译的时候能编译,但是提示我,让我使用正版。


测试过了,能用,第一次测试的时候没保存代码,还好没多少代码,照着记忆很快就写出来了。

七夕的乌鸦 发表于 2022-11-22 23:26

本帖最后由 七夕的乌鸦 于 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 不成立,跳过下面的关机代码
    关闭系统 (#关机, )                  注释:这行代码是查支持库找出来的,主要作用,关机,运行这行代码就相当于你用手戳了一下电脑的关机键

到这里,一次时钟周期就运行完了,也就是一次循环就完整运行完了。

a517753728 发表于 2022-11-22 16:11

哎呦不错 好计策全部化秒然后一下一下减出去减到0就关机好计谋不过呢 有些电脑卡或者其他意外情况 个人感觉把秒≤0 这样判断比较好等于0关机 万一卡了 跳到比0小的-1也照样关机然后 试试如果真 这个命令如果真(秒≤0)然后写关机代码 就行了取消写法很简单时钟周期=0 就是停止时钟运行鼠标移到组件属性栏 F1 下面有解释 常看看 有帮助 还有些代码命令 选中按F1 也会出解释

asiafox 发表于 2022-11-22 12:08

非常感谢楼主
确实厉害

士兵许三多 发表于 2022-11-22 12:19

继续加油哦

souny 发表于 2022-11-22 12:19

我也用的这个配色{:1_893:}

fanxiang001 发表于 2022-11-22 12:21

楼主不简单

cuicui001 发表于 2022-11-22 12:23

方便多了,省的win+ r了哈哈哈哈,下载下载

kangok 发表于 2022-11-22 12:39

谢谢分享,跟你学习

zhghack 发表于 2022-11-22 12:40

很好用 谢谢楼主

liudage 发表于 2022-11-22 12:53

留着学习用

Meiyy123 发表于 2022-11-22 13:03


留着学习用
页: [1] 2 3 4 5
查看完整版本: 学了几天易语言,写了个关机小程序