关于APP.path相对路径音乐播放问题??

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:14:40
我做了个图书管理系统,部分代码如下:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim AA As String
Private Sub Form_Load()
AA = App.Path & "\音乐\bs.mp3" '.mp3 .wav .wma 都可以
mciSendString "play " & AA, vbNullString, 0, 0
End Sub
发现最后打包(文件夹为11)测试时候,只要包放在磁盘一级目录下,就可以播放音乐!!但是如果放在(打个比方)C盘program files里面的话,就不能播放,但是直接放c盘下和program files平级目录下又可以播放.....
这是为什么啊??
只要放在C,D,E,F的一级目录都可以播放,但是放在二级目录就不可以,申明:打包前是放在一级目录下地!!!
如果这样,哪要怎么才能一级二级随便安装哪里都可以播放了!!

AA = App.Path & "\音乐\bs.mp3"
改成

AA = iif(right(app.path,1) <> "\" and right(app.path,1) <> "/",app.path & "/",app.path ) & "\音乐\bs.mp3"

因为app.path在二级以下目录会返回一个/线,而在根目录下是不会返回/线的 用iif函数判断一下并自动添加

顺便告诉你一个调试方法 你调试的时候直接
msgbox AA
或者
Debug.print AA
这样看看输出的结果有什么不同嘛

因为VB6在获取路径的时候,根目录是例如C:这样的不带"\",而子目录是C:\Program Files\这样的带"\",所以要判断一下是否App.path带有"\",再决定加不加"\",不能直接用App.Path & "\音乐\bs.mp3,这样只有在根目录下才有效。
比如
If Right(App.path, 1) = "\" Then path = App.path Else path = App.path & "\"
我一般自己写个函数用来统一路径