小屋創作

日誌2012-07-09 16:41

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

作者:落葉無聲

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;
  }
}



接下來的計劃. . .






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

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

小屋內關於C#的文章

5

2

LINE 分享

相關創作

Fastapi 0.111.0 版本 提供新的CLI!

肥宅的C#學習紀錄:第一個沒解決成功也沒能解決的BUG

24/05/08 寫完組語作業了...

留言

開啟 APP

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

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