看板 Visual_Basic 關於我們 聯絡資訊
sndPlaySound的用法 宣告:由於API不屬於VB內建範圍,所以要宣告函數以便使用。 下面是用分行符號(_)分成為幾行,其實也可以連成一整行寫。 Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _ (ByVal lpszSoundName As String, _ ByVal uFlags As Long) As Long 如果你想讓整個程式都能使用這個函數,就把這個宣告放在一般模組裡面, 如果只是讓某個表單使用,可以放在表單的一般宣告區裡, 但是必須用Private取代Public宣告。 這樣在VB中就會有個函數叫做sndPlaySound,是來自winmm.dll,也就是存放 Windows多媒體功能API的函式庫。 兩個引數: lpszSoundName傳入WAV檔的完整路徑字串,如"C:\Sample\Test.wav",不過為了 彈性起見,音效檔通常放在和程式同目錄或其子目錄下,而代入資料就可以寫 App.Path & "\Test.wav"之類的。(App.Path可以表示程式目前的目錄) 如果代入vbNullString,會切斷目前撥放音效的動作。 uFlags傳入撥放模式。這些本來是常數,不過好像常數還得另外引用, 所以我直接寫數值(long數值)。 &H0(=0):同步撥放(放完音效才繼續執行程式) &H1(=1):非同步撥放(不會因為撥放程式而停下程式執行,最適合放音效) &H8:重複撥放,必須和非同步撥放一起使用(用&符號連接) &H10:如果有其他音效正在撥放,則取消這次的撥放要求,傳回False sndPlaySound還可以撥放系統內建的音效(就是佈景主題設定的音效), 只要把檔名換成特定的常數就可以,不過這我還沒找到資料。 注意API函數都會有傳回值,通常用來表示執行成功與否,像 這個是long,傳回非0表示成功,傳回0(=False)表示失敗,不過 VB6可以忽略傳回值而直接呼叫函數,又這函數成功率幾乎100%, 所以也不用在意會不會失敗,除非電腦沒裝音效卡之類的。 這樣在VB中呼叫就是: sndPlaySound 路徑字串, 模式Call sndPlaySound(路徑字串, 模式) 如果找不到指定的音效(若是打錯字),其實也不會發生什麼嚴重的錯誤, 但是會沒有半點聲音。 (有的API操作不慎不只當掉程式,甚至會當機) *** 恩,字數蠻多,不過我覺得這可以算是API最入門的了, 其實我也是邊看書邊動手做的啦,你自己實際做做, 應該就會懂了吧! -- ┌╤═╮╤╮ ╤╭╤═╮╤ ╭═╭╤═╮╭══╮ 杜 ║║ ║║║ ║║║ ║╟═╯ ╟╧═╢╰╤═╮ 姆 └╧═╯╰╧═╯╧╰ ╧╧ ╰═╧ ╧─╧═╯ 卡 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 61.216.80.244