今天我们一起来学习如何自己写一个定时关机的小工具,网上工具虽然多,但是安全性有待考证,windows也自带定时关机,但是功能较少,自己编写程序,可以写进更多我们自己的需求。
第一步:自动关机,是调用几个命令来执行,因此我们首先来看一下是什么命令控制什么动作。
WinExec('shutdown -s', SW_SHOW);//调用关机
WinExec('shutdown -r', SW_SHOW);//调用重启
WinExec('shutdown -h', SW_SHOW);//调用休眠
如果各位对bat有所了解,那么对以上代码就会很熟悉了。以上代码写入事件里,可以直接执行,但是我们要的是定时关机,因此需要设定执行条件,只有满足我们的需求了,才执行对应动作,否则不执行。
第二步:界面设置:
以上程序中放入了,1个timer,3个radiobutton,4个labelededit,3个button。
这样就组成了我们最简单的定时关机界面。
第三步:容错处理
1、4个edit中输入时间,那么时间当然是不能为除整数之外的数字了,至少不能是文字吧,我们在edit的onpress事件里写入以下代码处理:
方法1:
If not(key in ['1','2','3','4','5','6','7','8','9','0',#8]) then
key:=#0;
其中#8是backspace的值,不应该被屏蔽掉,否则不能删除输错的值。
方法2:设置edit的属性NumbersOnly为true。
这2个方法达到的效果是一样的,输入结果只能为整数。
2、4个edit中如果没有输入任何值的话,也是无法执行的,因为edit中的空值不是数值。
因此,我们在edit的OnChange事件里加入以下代码处理:
if labelededit1.Text='' then
labelededit1.Text:='0';
3、timer的初始属性enable设置为false。
第四步:具体代码
全局变量:
执行button代码:
重设button代码:
取消button代码:
timer代码:
这上面我们的“取消”和“重设”button的代码是一样的,暂时先这么写,下次改善功能的时候,我们再为这2个button实现独立的代码。
程序运行效果:
总结:我们整理了3个不同的关机模式并用delphi的代码方式去实现,同时在执行每一种动作前,做一个时间设置的判断,到了预定时间就可以执行对应动作了。今天的程序是很容易实现的,代码也非常简单。
联系客服