Bonjour,
J'ai 3 PCs, tous sous windows 7 :
- un ASUS, le plus récent, sous windows 7 Pro SP1 OEM
- un HP sous Windows 7 Edition Familiale Premium SP1 OEM
- un PC assemblé maison, sous Windows 7 Edition Familiale Premium SP1, licence achetée

Mon module est le suivant (code trouvé sur le net) :
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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 sFichier As String
Dim MaxXY As String * 128
Dim MaxXY2 As String
Global VideoH As Long
Global VideoW As Long
 
 
Public Function Dureefichier(sFichier As String) As String
 
 
'On crée un buffer de 128
    Dim sRetString As String * 128
    On Error Resume Next
    VideoH = 0: VideoW = 0
 
'on ferme fichier au cas où il serait ouvert
    mciSendString "close sFichier", 0, 0, 0
'on ouvre le fichier passé en paramètre
    mciSendString "open """ & sFichier & """ type MPEGVideo alias fichier", 0, 0, 0
'on règle le format temporel sur milliseconde
    mciSendString "set fichier time format ms", 0, 0, 0
'on récupère la durée du fichier dans le buffer
    mciSendString "status fichier length", sRetString, 128, 0
'On récupere les données d'hauteur et largeur de trame
    mciSendString "where fichier destination", MaxXY, 128, 0
    MaxXY2 = Left(MaxXY, InStr(1, MaxXY, Chr$(0)) - 1)
    MaxXY2 = Trim(MaxXY2)
    If Len(MaxXY2) > 1 Then
        p1 = InStrRev(MaxXY2, " ")
        VideoH = Val(Mid(MaxXY2, p1 + 1))
        p2 = InStrRev(MaxXY2, " ", p1 - 1)
        VideoW = Val(Mid(MaxXY2, p2 + 1, p1 - p2 - 1))
    End If
 
'et enfin on ferme fichier
    mciSendString "close fichier", 0, 0, 0
 
End Function
Mon HP (sur lequel je programme) trouve bien les dimensions et la durée des fichiers MPEG, MP4, mais pas des FLV
Celui avec la licence non OEM lit tout, même les FLV !
Par contre, le ASUS sous W7 Pro ne lit rien du tout...La valeur MAXXY est désespérément vide...
(j'ai pensé que ça venait de la version de windows, mais en fait je n'en sais rien du tout !!!)

A quoi cela est-il dû ? Avez-vous une idée ?
Ou un autre code à me proposer pour lire la taille des vidéos ? (Je regrette qu'il n'y ait pas cette fonction dans WMP.dll)

Merci d'avance à tous, bonne journée