創作內容

12 GP

【C#】電腦定時關機程式 準備篇

作者:落葉無聲│2011-09-20 17:24:39│巴幣:24│人氣:4736
C#學習筆記 電腦定時關機程式 準備篇

定時關掉電腦的程式是一開始學C#, 最想寫的了. 其原因是常常人已經在睡覺或忙著其它的事時, 但電腦因轉檔或下載檔案耗時, 一直開著, 結束後卻因人不在電腦前, 不能關機, 感覺相當浪費電.

準備篇是落葉在寫電腦定時關機程式之前找資料的筆記, 其中也包含一些C#測試的小程式, 例如像Timer.

這次找資料的過程中, 也發現了Windows原來也可以直接執行定時關機, 詳情請看內文.

説明極可能亂七八糟. . . 一個非寫程式出身的孩子留. . .



想像程式

手邊沒現成的程式可以參考, 投入時間找資料前, 我必須先想像我想要的電腦定時關機程式是大概什麼樣子, 有些什麼功能鍵.

首先應該是有2個顯示現在時間關機時間Label, 再來是給使用者輸入關機””””TextBox, 最後是3個分別為執行”, “中止離開程式Button.

這樣就夠了吧. . .

在關機時間的設定上, 目前想到的做法有兩種. 一是使用者輸入在系統時間幾時幾分關機, 另一種就是使用者輸入幾時幾分後關機. 落葉比較傾向後者,因為轉檔和下載程式顯示的時間多是在多久後會完成. 直接輸入幾時幾分後關機, 好像比較具直覺性.



需要更多資料的清單

想像程式的階段過了後, list了以下項目, 都是我還沒機會碰過的, 需要更多的資料.

1.         如何在Label顯示現在時間和關機時間.
2.         如何設定Timer.
3.         如何執行某路徑的程式.
4.         如何關機.

再來就開始翻工具書和Google! 順便一提落葉手上唯一的一本工具書是當初要自學C#時購買的, 由博碩文化出品的Visual C# 2008從零開始.



程式碼

1.         Label顯示現在時間和關機時間.

現在日期寫法:
DateTime.Now.ToLongDateString();

現在時間寫法:
DateTime.Now.ToLongTimeString();

現在日期加天數寫法(本例為加5):
System.DateTime Today = System.DateTime.Now;
System.DateTime Add5Day = Today.AddDays(5)

現在時間加小時寫法(本例為加12個小時):
System.DateTime Today = System.DateTime.Now;
System.DateTime Add12Hours = Today.AddHours(12);

原本以為天數和時間的加減會很麻煩, 可能要轉到int計算後再轉回string, 原來C#提供的方法就有. 那這樣的話我還需要用Timer來計算關機的時間嗎? 不知道DateTime有沒有方法直接設定執行某件事的時間? 疑惑?

寫了一個小程式讓Label顯示現在的時間和加個天數和小時後的時間.



2.         如何設定Timer.

選擇: 檢視 > 設計工具 > 元件 > Timer (接著將Timer拉進.cs[設計]Form即可)

利用了上例的程式, Timer放在Form_Load如下. . .
timer1.Enabled = true;
timer1.Interval = 1000;

再將原來的顯示時間的Label丟到Timer_Tick
label1.Text = DateTime.Now.ToLongDateString();
label2.Text = DateTime.Now.ToLongTimeString();

如此一來每1000毫秒(1), 會執行label1label2, 程式中的現在日期和時間就會每1秒都更新. 換句話說如果Interval = 10000的話, label1label2就會每10秒更新一次. 除非Timer.Enabled = false, 不然Timer就會一直執行.

3.         如何執行某路徑的程式.

指定執行某程式的寫法(本例為執行該路徑中shutdown.exe程式):
string FileLink = @"C:\WINDOWS\system32\shutdown.exe";
Process ShutDown = new Process();
ShutDown.StartInfo.FileName= FileLink;
ShutDown.Start();

4.         如何關機.

原來以為直接執行了WINDOWS\system32\shutdown.exe, 電腦就會直接關掉了, 但我在直接執行這個檔案, 卻苦等不到電腦關機. 後來發現要設定一些參數.

關機 (在上例程式碼中加入第4行的內容, 0為設定關機的秒數)
string FileLink = @"C:\WINDOWS\system32\shutdown.exe";
Process ShutDown = new Process();
ShutDown.StartInfo.FileName= FileLink;
ShutDown.StartInfo.Arguments = "-s -t 0";
ShutDown.Start();

重新開機
ShutDown.StartInfo.Arguments = "-r -t 0";

這也能在Windows下直接執行”, 只要如下鍵入shutdown –s –t, 並輸入想要關機的秒數. 唯一比較麻煩的一件事, 時間是要自己計算好(本例為120秒後關機)





再來應該只要把這些全部兜在一起就沒錯了吧. . .

小屋關於電腦關機程式文章連結



引用網址:https://home.gamer.com.tw/TrackBack.php?sn=1423098
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:C#|程式|電腦關機|自動關機|程式設計

留言共 6 篇留言

哈哈小熊
好難的樣子

09-21 06:26

落葉無聲
其實滿有趣的~09-21 10:38
菲斯特
難度太高

09-21 06:45

落葉無聲
>"< 我有點樂在其中了~09-21 10:39
☀゚傲風
回到大一程式語言的痛苦歲月。

(準備好隨身牒~)

09-21 08:09

落葉無聲
@@ 在來就是把上面這些東東組起來, 看能不能變成我要的東西了~09-21 10:39
解凍豬腳
我現在是個國三生

有一點點VB/VB.net的基礎

至於C/C++我只會寫Consale(有寫錯嗎?反正就DOS畫面的那種)的程式...

我想學會如何用VC++寫Application

應該從哪裡學起呢?

09-25 17:21

落葉無聲
謝謝來訪, 我沒辦法回覆你耶!

我也是剛學C#沒多久, 我沒摸過其它程式語言. . .

不過, 我要學之前是跑到書店, 去逛了很久! 看了各種工具書後, 才決定要學C#, 同時也帶了一本C#的工具書回家.

要怎麼開始, 我就翻書, 有什麼想知道, 書上卻沒有的, 我就查msdn的資料庫. .

萬事起頭難吧, 不過腳一旦踏出去, 就知道怎麼走下去了.09-26 08:53
隨意
感謝分享,小的也是對弄一些額外附加的小程式非常有興趣!

05-16 12:01

落葉無聲
[e12]06-13 11:38
隨意
雖然不多,GP奉上!

05-16 12:02

落葉無聲
感謝~06-13 11:38
我要留言提醒:您尚未登入,請先登入再留言

12喜歡★rovingleaves 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【閒聊】放連假囉! 這幾... 後一篇:【心得】特洛伊無雙 / ...

追蹤私訊切換新版閱覽

作品資料夾

sakata21大家
來看看孑寶吃阿嬤種得 美味瓜瓜 還有孑寶那 清澈且愚蠢的眼神~~看更多我要大聲說昨天22:16


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】