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 :
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
Celle-ci marche trés bien a condition qu'aucun n'espace ne soit mit dedans.
Auriez-vous une idée ?
Merci