vb內讀取resources內的檔案該怎麼寫?

各位vb高手

我在resources內有放置音效檔案,要當作背景音樂的

在書上學習到

使用語法

My.Computer.Audio.Play("C:\1.wav", AudioPlayMode.Background)

但這個前提之下是, 音效檔案wav必須在c:\底下

但是我發行後製作成安裝檔

該音效並不會包含在內耶..

所以我希望放在resources內 包含在安裝檔案內

具我目前所學到的讀取方式有

1.

My.Computer.FileSystem.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp + "\硬度檢驗表.xls", My.Resources.硬度檢驗表, False)

Process.Start(My.Computer.FileSystem.SpecialDirectories.Temp + "\硬度檢驗表.xls")

這種方式是將resources內的檔案寫入到temp資料夾內, 再做開啟

但是同樣方式我實驗過, 他會出現該 無法轉換成1-為陣列

這是怎麼回事@@? 因為我要讀取的是音效檔,而目前是excel檔,表示excel黨可以用這種寫法 而音效檔不能? 該如何區分?

Update:

疑? 原來如此, 在請問一下 相對路徑...

是怎麼得知?

我自己設定?

我其實有去找過, 我到底安裝完之後 我的安裝後資料夾到哪去了...

找不到@@

請問又如何把相對路徑封裝起來呢??

感謝大哥的指點 我的程式就差這最後一步了

Update 2:

我簡述我的問題好了,請大哥幫我舉個例子 我就會學起來了

我使用的是vb.net

再resources內新增 1.wav檔

我需要在首頁執行時候,擁有背景音樂 1.wav播放

My.Computer.Audio.Play("C:\1.wav", AudioPlayMode.Background)

這串絕對路徑在別台電腦上行不通

因為別人沒以c:\1.wav

Update 3:

再發行後安裝 也不知道如何在對方c:\內寫入1.wav

所以放置在resources資料夾內

希望可以用相對路徑啟動

我上網查了相對路徑的寫法

我也成功的寫出來 我寫 ".\resources\1.wav"

但是這樣再發行前是ok

在封裝後就不ok

我也搞不清楚我安裝後 resources跑到哪去了 到處找都找不到

Update 4:

我上網查了一下 你說的路徑封裝

好像是6.0的功能

vb.net發行精靈那邊 我到處找都沒看到類似的功能耶

1 Answer

Rating
  • 上官
    Lv 5
    1 decade ago
    Favorite Answer

    My.Computer.Audio.Play("C:\1.wav", AudioPlayMode.Background)

    裡面的"C:\1.wav"是絕對路徑,

    只要使用相對路徑就好了,

    例如把你的資源一個目錄,該目錄和執行檔同一層,

    My.Computer.Audio.Play("目錄\1.wav", AudioPlayMode.Background)

    就可以讀取,

    不過要記得在封裝時,也要把這個目錄包進去。

Still have questions? Get your answers by asking now.