国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

用C++ Builder 編寫定時關機程序 

2019-09-06 23:33:30
字體:
來源:轉載
供稿:網友

                    從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即時顯示距離關機所剩余的秒數,實現倒計時。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 静海县| 三河市| 克拉玛依市| 邓州市| 灵山县| 大埔县| 阳江市| 宁城县| 绍兴县| 玉树县| 南江县| 遵义市| 巴南区| 湘潭县| 库车县| 清原| 涞水县| 长子县| 永昌县| 东源县| 横山县| 墨脱县| 潜江市| 达尔| 大城县| 朝阳市| 林芝县| 甘谷县| 南涧| 元氏县| 岳普湖县| 抚松县| 黔南| 唐河县| 金秀| 滨海县| 绥阳县| 元阳县| 临夏县| 铜川市| 青阳县|