一個提醒程序最典型的就是鬧鐘程序網上有不少個性化的提醒程序下載但是大部分都是以時間為主的鬧鐘提醒我們也可以用來打造一個適合自己的提醒程序比如監控一個某個應用程序的變化然後發出聲音提醒自己等等
一個提醒程序最重要能在符合提醒條件的時候發出聲音來提醒使用者在這裡我們就對具體的提醒條件啰嗦了只針對如何實現提醒聲音的播放進行說明
在的net組件中並沒有提供播放聲音文件的組件但是我們可以通過使用Com組件來播放聲音文件但是要注意的事我們只需要發出提示的聲音而已並不需要像播放器那樣播放不同格式的聲音文件和繁多的列表所以我們可以通過API函數來循環播放單個的聲音文件
在WindowsAPI函數的有一個PlaySound函數它用於播放WAV格式的聲音文件我們可以用它來反復播放一個指定的WAV文件來實現提醒功能
首先在中引入API聲明
Public Declare Function PlaySound Lib winmmdll (ByVal lpszSoundName As String ByVal hModule As Integer ByVal dwFlags As Integer) As Integer
然後定義幾個我們程序中必須用到的dwFlags參數常量
同步調用PlaySound中指定的文件播放完WAV文件後才返回結果
Const SND_SYNC As Integer = &H
異步調用PlaySound中指定的文件不必等到播放完WAV文件後就直接返回結果在這裡我們可以調用異步方法來播放文件
Const SND_ASYNC As Integer = &H
反復播放指定的WAV文件
Const SND_LOOP As Integer = &H
在調用的時候hModule參數必須為
需要停止的時候通過調用PlaySound(vbNullString )來實現現在我們在窗體上放置兩個按鈕一個用於開始播放一個用於停止播放然後再放置一個TextBox控件用於指定WAV文件的路徑界面如下圖所示
圖一示例界面
完整代碼如下
Public Declare Function PlaySound Lib winmmdll (ByVal lpszSoundName As String ByVal hModule As Integer ByVal dwFlags As Integer) As Integer
Const SND_FILENAME As Integer = &H
Const SND_ALIAS As Integer = &H
Const SND_SYNC As Integer = &H
Const SND_ASYNC As Integer = &H
Const SND_LOOP As Integer = &H
Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
PlaySound(TextBoxText SND_LOOP Or SND_ASYNC)
End Sub
Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick
PlaySound(vbNullString )
End Sub
運行在TextBox中輸入有效的WAV文件的路徑然後單擊開始就可以循環播放聲音了單擊停止按鈕就可以停止播放
當然本文只是講述制作一個鬧鐘提醒程序的關鍵部分的實現要完成一個真正的提醒程序我們可以根據自己的需要添加合適的提醒觸發條件就可以做出一個真正個性化的鬧鐘提醒程序了
From:http://tw.wingwit.com/Article/program/net/201311/12453.html