用C++ Builder编写定时关机程序

从internet下载较大的软件时,由于目前网络带宽的原因,许多人喜欢在晚间进行,而到深夜时就存在人需要休息的问题。目前绝大多数下载软件可以估算出下载所需的时间,如果到时让计算机自动关机,就可以免受守候之苦。本文介绍笔者用c++ builder 5编写的一个能实现定时自动关机的程序。

程序功能

图1界面上半部分用于即时显示当前系统的日期和时间信息,下半部分用于设置自动关机的日期和时间。当系统时间和设置的关机时间吻合(相等)并且“自动关机生效”被选中时,计算机将自动关闭。其中,只有当所设定的关机时间在有效范围内时(即大于系统时间),“自动关机生效”才能被激活。

组件设置

向窗体上放置两个tgroupbox组件:groupbox1和groupbox2,其caption属性分别设置为“当前系统时间”和“预设关机时间”。在这两个组件上再放置4个tdatetimepicker组件:datetimepicker1、datetimepicker2和datetimepicker3、datetimepicker4,其中前两个分别用于显示当前系统的日期和时间,后两个用于设置自动关机的日期和时间,它们的部分属性值设置如下表所示:

在窗体上放置一个tcheckbox组件:checkbox1(其caption属性设置为“自动关机生效”)和一个ttimer组件:timer1(其interval属性取缺省值1000)。

代码编写

在窗体的oncreate事件过程中编写如下代码:

void __fastcall tform1::formcreate(tobject *sender)
{
checkbox1->checked=false;
//初始设置为不可访问
checkbox1->enabled=false;
datetimepicker4->datetime=now();
datetimepicker3->datetime=now();
datetimepicker2->datetime=now();
//用系统时间初始化组件
datetimepicker1->datetime=now();
}

在组件timer1的ontimer事件过程中编写如下代码:

void __fastcall tform1::timer1timer(tobject *sender)
{
datetimepicker2->datetime=now();
//接收当前日期和时间,用于即时显示
datetimepicker1->datetime=now();
//随时检测设定的关机日期和时间是否有效
if(datetimepicker4->datetime < now())
{
checkbox1->checked=false;
//无效时不可访问
checkbox1->enabled=false;
}
else
checkbox1->enabled=true; //有效时可以访问
if(checkbox1->checked == true && datetimetostr(datetimepicker4->datetime) == datetimetostr(now()))
{//判断定时关机条件是否满足
dword tmp;
//调用win api函数关闭计算机
exitwindowsex(ewx_shutdown,tmp);
}
}

组件datetimepicker3和datetimepicker4的onchange事件过程的代码相类似,为使这两个组件所设置的日期和时间“联动”(同时变化),组件datetimepicker3的onchange代码设置如下:

void __fastcall tform1::datetimepicker3change(tobject *sender)
{//组件变化“联动”
datetimepicker4->datetime=datetimepicker3->datetime;
//检测设置的日期是否有效
if(datetimepicker4->datetime < now())
{
checkbox1->checked=false;
checkbox1->enabled=false;
}
else
checkbox1->enabled=true;
}

组件datetimepicker4的onchange代码设置如下:

void __fastcall tform1::datetimepicker4change(tobject *sender)
{//组件变化“联动”
datetimepicker3->datetime=datetimepicker4->datetime;
//检测设置的时间是否有效
if(datetimepicker3->datetime < now())
{
checkbox1->checked=false;
checkbox1->enabled=false;
}
else
checkbox1->enabled=true;
}

另外,如果在timer1组件的ontimer事件过程中添加如下代码:

//定义日期时间型对象(变量)

tdatetime presetdatetime,currentdatetime;

presetdatetime=datetimepicker3->datetime;

currentdatetime=now();

//得到时间差(秒数)

edit1->text=int((presetdatetime.val-currentdatetime.val)*60*60*24);

则可以通过在窗体上放置的tedit组件edit1即时显示距离关机所剩余的秒数,实现倒计时。

时间: 2024-08-03 07:57:40

用C++ Builder编写定时关机程序的相关文章

C语言编写简单的定时关机程序_C 语言

写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机. 这里主要考察system()命令. 代码实现: #include<stdio.h> #include<string.h> #include<stdlib.h> int main() { char cmd[20]="shutdown -s -t "; char t[5]="0"; int c; system("title C语言关机程序")

java实现电脑定时关机程序代码

最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在晚上17 点到23 点25 分才上网,到了23 点25 分就可以自动关机.为了让别人感觉不到这个软件的"存在"(免得使用者自己关闭定时关机软件),所以我想把关机软件注册为服务的方式,运行在后台.这里介绍下如何利用javaService 软件把java 程序注册为windows 服务. 一.  利用javaService 注册java

如何利用DOS批处理实现定时关机操作详解_DOS/BAT

一.批处理释义: 批处理(Batch),也称为批处理脚本.它是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,应用于DOS和Windows系统中.批处理文件的扩展名为bat. 目前比较常见的批处理包含两类:DOS批处理和PS批处理.PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本:而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本. 二.编写批处理文件: (1)新建一个文本文件,在里面写上DOS命令语句.然后选择另存为改文

java实现电脑定时关机的方法_java

本文实例讲述了java如何注册成windows服务程序及一个简单的java定时关机程序代码,分享给大家供大家参考.具体方法如下: 一.问题: 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在晚上17 点到23 点25 分才上网,到了23 点25 分就可以自动关机.为了让别人感觉不到这个软件的"存在"(免得使用者自己关闭定时关机软件),所以我想把关机软件注册为服务的方式,运行在后台.

定时关机技巧全集

  定时关机技巧全集 一.win9x关机 关机是大家常做的一件事,不少人还传统地使用着点击开始/关闭系统/关闭计算机的方法.是不是太古老了?来吧朋友,今天跟我一起来玩关机. 一键关机 在桌面单击鼠标右键,选择新建/快捷方式,在创建快捷方式对话框命令行一栏中输入:C:windowsrundll32.exe user,exitwindows(其中的逗号不能少),左键单击下一步,在选定快捷方式的名称一栏中输入:关闭计算机,左键单击完成.现在在桌面上生成了一个关闭计算机的图标,用鼠标选中,单击右键,左键

最好用的PowerOff V3.0.1.3┊功能强大的定时关机软件┊绿色增强版 下载_常用工具

Poweroff 3.0.1.3 是一个小巧好用的定时关机程序.它能以 NT 服务来运行,能在Win2000Pro 或 WinXP 系统中较好地防止用户在任务管理器里中止进程 本汉化版是在英文原版的VC源代码上进行修改的.改进了原版不能同时运行多个任务限制.英文原版由于程序本身一个EXE只能创建一个定时服务,所以在一个系统中就只能制定一个任务.如果一个系统中要有多个任务的话,就要修改 NT 服务名称和执行路径.在本压缩包里包含有 6 个 EXE,它们的差别就是 NT 服务名称和执行路径不同而已,

hta实现的定时关机小程序

这个小程序使用hta写的,用了vbscript代码实现,喜欢的朋友可以测试下   定时关机小程序 界面: 实现代码: 复制代码 代码如下: <head> <title>定时关机小程序</title> <HTA:APPLICATION      APPLICATIONNAME="HTA Test"   Borde="thin"   BorderStyle="raised"   ICON="C:WI

Win7旗舰版 我已经在“运行”中设置好了定时关机的时间,c#程序中可以获取到我设置的自动关机的时间吗?

问题描述 系统是Win7旗舰版我已经在"运行"中设置好了定时关机的时间,c#程序中可以获取到我设置的自动关机的时间吗?我想在关机的前几分钟保存修改的内容.退出在运行的程序.帮帮忙,谢谢各位了. 解决方案 解决方案二:定时关机?我更建议你把定时关机的功能实现在你的程序里...解决方案三:你这样写个timer计时间,倒计时前几分钟的时候,你再保存修改的内容,时间到了,直接调用执行cmd命令shutdown关机.

vbs实现的定时关机、重启的脚本和程序_vbs

  将下面代码存为vbs文件,如:shutdown.vbs,然后双击或在文件上点右 键选择以命令提示打开,如果到了你设置重启的时候,系统会出现关机的对话 框. 直接下面代码程序会出现关机的对话框,最后的回车注释掉了,正常使用 时,请去掉注释符. 以下代码在window 2000 下通过. 复制代码 代码如下: '定时关机或重启的脚本,在windows 2000下通过 ' code by haiwa 2005-11-7 dim ActionID ActionID = 1    '0注销,1关机,2