由于文件名称中有空白字符,结果会造成MCI驱动程序的解读错误,而无法正确执行.要克服这个问题必须先调用GetShortPathName API函数,将长文件名转换成对应的短文件名,然后执行OPEN命令. Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As LongPrivate Sub Command2_Click() Dim PathName As String, S As String, ShortPathName As String PathName = "C:\WINDOWS\Media\Windows XP 默认值.wav" S = String(LenB(PathName), Chr(0)) GetShortPathName PathName, S, Len(S) ShortPathName = Left(S, InStr(S, Chr(0)) - 1) End Sub
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As LongPrivate Sub Command2_Click()
Dim PathName As String, S As String, ShortPathName As String
PathName = "C:\WINDOWS\Media\Windows XP 默认值.wav"
S = String(LenB(PathName), Chr(0))
GetShortPathName PathName, S, Len(S)
ShortPathName = Left(S, InStr(S, Chr(0)) - 1)
End Sub