PDA

View Full Version : یک API جایگزین برای mciExecute



MBeigy
جمعه 04 مهر 1382, 07:41 صبح
سلام به همه دوستان
آیا کسی یه تابع API جایگزین برای اجرا کردن فایلهای صوتی بخصوص mp3 داره که از mciExecute استفاده نکنم؟ چون این تابع طی یک اقدام عجیب فایلهایی که در مسیرشون کاراکتر فاصله باشه رو اجرا نمیکنه. کسی هست بدونه چرا اینجوریه؟

S.Azish
جمعه 04 مهر 1382, 11:40 صبح
بهتره اسم مدل داس فایل رو بگیرید و اونو به mciExecute بفرستید.



Option Explicit

Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As
String) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
String, ByVal cchBuffer As Long) As Long

Private Const MAX_PATH As Long = 260

Private Function GetShortFileName(ByVal LongFileName As String) As String

Dim sBuffer As String

sBuffer = String$(MAX_PATH, vbNullChar)
Call GetShortPathName(LongFileName, sBuffer, MAX_PATH)
GetShortFileName = Left$(sBuffer, InStr(1, sBuffer, vbNullChar) - 1)

End Function

Private Sub Form_Click()

Dim sFileName As String
Dim lRet As Long

If Right$(App.Path, 1) <> "\" Then
sFileName = App.Path & "\sound.wav"
Else
sFileName = App.Path & "sound.wav"
End If
sFileName = GetShortFileName(sFileName)

lRet = mciExecute("play " & sFileName)
If lRet = 0 Then
MsgBox "Error playing sound"
End If

End Sub

MBeigy
دوشنبه 07 مهر 1382, 19:40 عصر
سلام
آقای آذیش دستتون درد نکنه.
ببخشید من این روزها یک کم گرفتارم دیر به دیر سر میزنم. باز هم ممنون. :P