Récupérations des infos windows d'un fichier video
cs_simon22
Messages postés161Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention20 août 2015
-
19 août 2015 à 16:51
Uranos -
21 mars 2016 à 23:09
Bonjour,
Pour un petit soft personnel je cherche depuis quelques temps à récupéré les informations que >indows lui même semble trouver sans soucis sur différents formats vidéo.
Plutôt que de moi même me cassé la tète a lire l'entète je suis partie sur la piste
des api windows, qui en toute logique devraient pouvoir me retournée les mêmes informations qu'il sais m'afficher dans le dossier (en cas longueur de frame et largeur de frame)
J'ai fais pas mal de recherche sur le sujet, avec des résultats plutot pauvre en explication, j'ai trouver ce qui semblais être l'objet de ma recherche :
Qui me retourne toute sorte d'info, certainnes m'interesse mais je ne retrouve jamais ma longueur/largeur de frame.
Pensant que c'était un problème de clef j'ai eu recours à plusieurs ruses, en testant la clef "Longueur" ou "Longueur de trame" mais ausssi "Dimensions" qui semblerais t'il retourne également ces informations et la clef "Frame width", ces dergnières clefs ont marché pour des internautes anglophone, mais de mon coté je n'ai jamais de retour fiable comme sur windows (7) quand je sélectionne un élément.
Dite moi si je suis pas clair, je sais que ça part un peu dans tout les sens, mais le problème en lui mème (est censé) être simple^^"
Si quelqu'un à une idée je suis preneur, ça fais un petit moment que je n'ai pu complèter mon algo sur cette partie la...
cs_simon22
Messages postés161Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention20 août 2015 20 août 2015 à 16:19
Bon, j'ai fini par trouver, en réalité aucune clef textuel convenais, j'ai trouver un moyen détourner d'arriver à mes fins
Public Function GetFileProperties(ByVal FileName As String) As Dictionary(Of Integer, KeyValuePair(Of String, String)) Dim Shell As New Shell Dim Folder As Folder = Shell.[NameSpace](Path.GetDirectoryName(FileName)) Dim File As FolderItem = Folder.ParseName(Path.GetFileName(FileName)) Dim Properties As New Dictionary(Of Integer, KeyValuePair(Of String, String))() Dim Index As Integer Dim Keys As Integer = Folder.GetDetailsOf(File, 0).Count Dim i As Integer = 0, tmp As String = "" For Index = 0 To 300
Dim CurrentKey As String = Folder.GetDetailsOf(Nothing, Index) Dim CurrentValue As String = Folder.GetDetailsOf(File, Index) If CurrentValue <> "" Then Try tmp = File.ExtendedProperty(CurrentKey) Catch ex As Exception FrmOperation.TxtOp.AppendText(WindowsField(i) & " : " & " GetWindowsExstendedData Error" & vbCrLf) End Try If (tmp <> vbNullString) Then Properties.Add(i, New KeyValuePair(Of String, String)(CurrentKey, tmp)) Else Properties.Add(i, New KeyValuePair(Of String, String)(CurrentKey, CurrentValue)) End If i = i + 1 End If Next Return Properties End Function
300 est une valeur forfétaire, en réalité pour tester cette fonction j'ai été jusqu'a 100, par défaut, le créateur de la fonction avais mis count(Keys) qui retournais 30 et ne me donnais que trop peu d'info, j'ai fais un test a 1000 juste pour voir si il y en avais d'avantage, et j'ai trouver des infos jusqu'a 300 avec pas mal de cases blanches
ce toujours en utilisant la fonction File.ExtendedProperty(Key) mais avec un nombre en entré, et non une chaine de caractère.
Il ne me reste qu'a trouver comment faire un trie global sur le retour de cette fonction pour ne pas tester des cases inutilement, c'est trés long à faire et je boucle sur des miliers de fichiers.
En espérant que ça puisse aider quelqu'un, je continuais a mettre mes avancés sur le sujet.