創作內容

5 GP

【C#】學習筆記 鬧鐘程式 改善篇 (Ver1.01)

作者:落葉無聲│2012-07-09 16:41:58│巴幣:10│人氣:2017
C#學習筆記 鬧鐘程式 完成篇 (Ver1.01)

鬧鐘程式的主要程式碼請參考之前的文章:
小屋內關於鬧鐘程式文章連結

本篇僅提供更新後1.01版的程式下載及更新細節.



鬧鐘程式(ver1.01)下載

載點

解壓縮後點擊執行即可.

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




更新細節

1. 停止鬧鈴

當鬧鈴在響時, 點擊設定時間可以直接關閉鬧鈴. (這其實在一開始就應該先想到了 昏)



System.Media.
SoundPlayer Belling = newSystem.Media.SoundPlayer();
//播放
Belling.Play();
//停止
Belling.Stop();

2. 流程

因為加入了停止鬧鈴的功能, 流程也會有些許變更, 增加了Timer4. Timer4的主要作用, 是當鬧鈴播放完畢後, 將時間的設定功能還原. 所以恢復設定是根據(1)使用者關閉或(2)音樂播放完畢.



3. 計算音樂長度

音樂的長度是決定Timer4何時將設定時間還原. 原來我的想法是每秒去檢查音樂是否播放, 如沒有播放了, 則回復設定時間為"不啓動". 但後來在爬文中找到了可以計算音樂長度的方法, 其實是把人家寫的東西拿來用拉. . .

該工具實在異常強大好用, 這裡提供網址給大家參考 NAudio

下載後在參考的地方加入(如圖). (我是有將檔案也放在debug的資料夾)


接著在命名空間加入: using NAudio.Wave;


最後寫入方法()就可以使用了.

public static TimeSpanGetWavFileDuration(string fileName)
{
     WaveFileReader wf = new WaveFileReader(fileName);
     return wf.TotalTime;
}

//Timer4計算時間的範例

double GetLength;
TimeSpan SoundLength =GetWavFileDuration("Alarm.wav");
GetLength =SoundLength.Ticks;
timer4.Interval = Convert.ToInt32(GetLength / 10000);

4. 移掉Windows框架

原來是有Windows框架


拿掉Windows框架


this
.FormBorderStyle= FormBorderStyle.None;

5. 滑鼠移動框架

沒有了Windows的框架後, 是沒有辦法移動的, 所以要在Form的MouseDown, MouseUp和MouseMove加入程式碼.

先前文章滑鼠事件寫的程式碼, 用在Form上一直失敗, 有點挫敗感! 後來網路上爬文取得了一個較易理解的作法如下.

原則上也是先記下滑鼠移動前的位置(MouseDown),接著在MouseMove時減去移動X和Y.

bool MouseMoveFlag = false;
private Point MouseLocation;
private voidFM_DigitalAlarm_MouseDown(object sender, MouseEventArgs e)
{
   MouseMoveFlag = true;
   MouseLocation.X = e.X;
   MouseLocation.Y = e.Y;
}
private voidFM_DigitalAlarm_MouseUp(object sender, MouseEventArgs e)
{
   MouseMoveFlag = false;
}
private voidFM_DigitalAlarm_MouseMove(object sender, MouseEventArgs e)
{
  if (MouseMoveFlag)
  {
     Point CurrentLocation = Control.MousePosition;
     CurrentLocation.Y = (CurrentLocation.Y -MouseLocation.Y);
     CurrentLocation.X = (CurrentLocation.X -MouseLocation.X);
     this.Location= CurrentLocation;
  }
}



接下來的計劃. . .

  • 看能不能改美圖形鋸齒的問題

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

  • 程式閒置時, 透明度減少 (視其必要性)




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

相關創作

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

留言共 2 篇留言

哈哈小熊
看不懂
純友情推

07-10 16:42

落葉無聲
謝謝~ [e13]07-10 16:43
功夫糯米丸~~
您好R大 小弟目前踏入C# 剛好GOOGLE到您的小屋,想請問是否可提供原始檔,方便小弟學習呢?純學習,不做其他用途使用 感謝您^^

02-03 10:24

落葉無聲
需要用到的程式碼, 基本上我小屋都有, 只是將他們整合在一起.02-05 15:27
我要留言提醒:您尚未登入,請先登入再留言

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

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

追蹤私訊切換新版閱覽

作品資料夾

sakata21大家
來看看阿嬤餵金孫 呷 "泡湖" 吶~~~看更多我要大聲說昨天23:30


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

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