Bonsoir, j'aimerais un petit coup de pouce pour un problème avec cette dll.
Je l'utilise afin de récupérer la durée d'un fichier vidéo. Seul petit problème si un espace apparait dans le chemin du fichier ou dans le nom du fichier la fonction pour récupérer sa durée ne fonctionne plus.
Code de la fonction afin d'avoir la durée d'un fichier :
Celle-ci marche trés bien a condition qu'aucun n'espace ne soit mit dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private Declare Function mciExecute Lib "WINMM.DLL" (ByVal lpstrCommand As String) As Long 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 Function GetAviDuration(ByVal sPath As String) As String ' retourne la durée du fichier AVI en secondes Dim sAlias As String, sBuffer As String Dim lRet As Long sAlias = "FONCTION_MCI_" '& CStr(Now.Second) ' chargement Call mciExecute("OPEN " & sPath & " TYPE AVIVIDEO ALIAS " & sAlias & " STYLE POPUP") Dim i As Integer = Len(sPath) ' on récupère les ms totales sBuffer = New String(vbNullChar, 128&) Call mciSendString("SET " & sAlias & " TIME FORMAT MS", sBuffer, Len(sBuffer), 0&) lRet = mciSendString("STATUS " & sAlias & " LENGTH", sBuffer, Len(sBuffer), 0&) ' retour GetAviDuration = Val(Microsoft.VisualBasic.Left(sBuffer, InStr(sBuffer, vbNullChar))) \ 1000 ' stop Call mciExecute("CLOSE " & sAlias) End Function
Auriez-vous une idée ?
Merci
Partager