創作內容

4 GP

【C#】學習筆記 鬧鐘程式 完成篇 (Ver1.00)

作者:落葉無聲│2012-06-28 14:33:52│巴幣:8│人氣:4085
C#學習筆記 鬧鐘程式 完成篇 (Ver1.00)

被LOL(英雄聯盟)綁架了快5個月, 我終於逃出來了! 繼續來耕耘小屋~

趁著台北國際電腦展結束, 公司訂單也比較少的時候(汗), 初步完成了桌面鬧鐘程式. 現階段看來還不能是個完成品, 不過最初想要的功能"圖形使用介面"和"定時鬧鐘"已先完工了.



本篇僅提供程式的下載, 程式執行的流程, 使用說明, 部份程式碼及心得.



鬧鐘程式(ver1.00)下載

載點

解壓縮後執行 Digital Alarm.exe即可

如有使用上問題, 煩請回報, 也歡迎提供意見 謝謝.



使用說明

執行程式後的操作視窗


紅框內顯示的是現在的時間


紅框內顯示的是設定時間


紅框內顯示的是啓用鬧鈴或關閉鬧鈴按鈕


紅框內顯示的是關閉程式


設定鬧鈴的方法是將滑鼠移動到設定時間處(紅框內)


接著點擊即可 (圖中設定的時間為 20:00, 晚上8點)
設定時間內的每一格數字, 需要各別點擊設定.


設定時間後將滑鼠移動到鈴鐺(紅框內)


點擊鈴鐺, 紅色X不見後, 即設定完成. 當現在的時間到達20:00時, 程式就會發出鬧鈴聲. 鬧鈴啓動後將無法再行設定時間.


如要重新設定時間或取消設定的時間, 需再點擊鈴鐺圖像一次. 當紅色X覆蓋鈴噹後即取消原設定的時間, 此刻也將再一次的設定時間.


離開程式除了關閉視窗外, 也可以點擊右下角圖形離開.




程式執行的流程





程式碼



1. 冒號閃爍 (Timer2)(Interval = 500)

//寫入位置不在Timer2內, 我是放在Form_Load和InitializeComponent之間. . .
bool ColonFlag;

//每次進入Timer先將Flag反過來, 如此一來下次進如就會是和上次相反.
ColonFlag = !ColonFlag;

//如果Flag = true則可以看到冒號, 如果是false則看不到冒號造成閃爍效果
if (ColonFlag == true){ pic_Colon1.Visible= true; }
else { pic_Colon1.Visible= false; }

2. 設定時間的計算

// 先設設定時間(BellTime)等於現在時間
BellTime =System.DateTime.Now;

//接著算出從今天00:00到現在時間的Tick
//因為數字很長要用 long 轉 int要用int64.
long HTick = Int64.Parse(BellTime.TimeOfDay.Ticks.ToString());

//設定時間(BellTime)減去今天的Tick等於把設定時間(BellTime)設在本日00:00.
BellTime =BellTime.AddTicks(0 - HTick);

//將使用者設定的小時和分鐘加入設定時間(BellTime)
//countSet1為小時的2位數, 但因例用圖像顯示, 故本質仍是個位數, 所以要乘10.
//countSet2為小時的個位數, 所以加上 * 10後的 countSet1, 即是要加入的小時數.
//加入的分鐘, 其算法亦然
BellTime =BellTime.AddHours(countSetH1 * 10 + countSetH2);
BellTime =BellTime.AddMinutes(countSetM1 * 10 + countSetM2);

//設定現在時間(NowTime)等於現在
DateTime NowTime =System.DateTime.Now;

//如果設定時間(BellTime)小於現在時間(NowTime), 要將時間加1天.
//假設沒有增加1天, 那設定時間(BellTime)已經比現在時間小(NowTime)了, 一旦執行程式, 鬧鈴會直接啓動.
if (BellTime <NowTime) { BellTime = BellTime.AddDays(1); }

//最後近入Timer3比較設定時間(BellTime)及現在時間(NowTime)

3. 播放wav檔

//先增加SoundPlayer
System.Media.SoundPlayer Belling = new System.Media.SoundPlayer();

//指定音檔路徑. (放在執行檔同一位置, 則不需要打全路徑名稱)
Belling.SoundLocation= @"Alarm.wav";

//播放音樂
Belling.Play();



程式需改善的部份

  • 圖像檔如果直接加入pictureBox中的BackgroundImage或Image時, 並不會有圖像鋸齒問題(像是程式中的魂並沒有鋸齒)
    但一執行程式時,  圖像需要變化, 則會出現鋸齒(如下圖中的數字及鈴鐺).
    也許是圖像的Format在程式執行時的變化有關, 尚需尋求改善方法

  • 除去windows框架, 完成全圖形使用介面

  • 使用者可以自己設定鬧鈴的音樂.

  • 程式閒置時, 透明度減少



後記

其實本來我一開始鬧鐘樣式的草稿是這樣,

成品大概是這種感覺.


但是最近看太多了死神, 而改變了. 先前也為了原來的樣式, 畫了電子式的數字, 現在則是使用Comic字型做圖形, 這兩個樣式實在差有夠大的 .

電子數字繪製 前篇

電子數字繪製 後篇

這件事告訴我們荒廢也許不是壞事. . .(誤)

這次寫鬧鐘程式, 其實有很多的程式碼大概和上次寫電腦關機程式多有重疊, 重疊的部份我在這篇就沒有多加說明了. 有興趣的同好, 可以回頭爬爬落葉之前的文章看看,  也謝謝您的指教. . .



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

小屋內關於鬧鐘程式文章連結


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

相關創作

同標籤作品搜尋:C#|程式|程式設計|鬧鐘程式|桌面鬧鐘|滑鼠控制|滑鼠事件

留言共 2 篇留言

紅豬
我看到你在玩mlb the show 08[e19]
這系列我只買07就沒買了, 當時很瘋王建民

06-28 14:39

落葉無聲
哈哈, 08真的很耐玩! 我也是為了可以使用王建民買這款的, 現在大概明年會為了金鶯隊買MLB the show 2013 XD06-28 14:48
亦真非真
繼續學習

07-04 17:52

落葉無聲
大家仍需努力[e15]07-04 18:21
我要留言提醒:您尚未登入,請先登入再留言

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

前一篇:【C#】學習筆記 鬧鐘程... 後一篇:【C#】學習筆記 鬧鐘程...

追蹤私訊切換新版閱覽

作品資料夾

leon770530巴友
我的小屋首頁共有4篇健身相關證照心得文,對健身有興趣的朋友可以來看看喔!看更多我要大聲說5小時前


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

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