Extraction infos complementaires sur un fichier(titre,auteur..etc) [Résolu]

Signaler
Messages postés
148
Date d'inscription
dimanche 13 octobre 2002
Statut
Membre
Dernière intervention
13 novembre 2008
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Salut, je cherche un moyen pour récuperer toutes les infos complementers sur un fichier sous l'explorateur xp ( tirte,auteur etc..) accessibles par l'explorateur / bouton droit /propriétés résumé.
(api ,fso etc...)
Merci

7 réponses

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
14
salut

bon déjà le prb, c que chez moi ca marche sur XP SP2 office 2000, et 2K et 98...

sur FAT : seuls les fichiers office peuvent être lus pour les propriétés

sur NTFS : tous les fichiers peuvent être lus

ce problème vient surement de la ligne :
StgOpenStorageEx StrPtr(FileName), STGM_READWRITE Or STGM_SHARE_EXCLUSIVE, STGFMT_ANY, 0&, ByVal 0&, ByVal 0&, IID_IPropertySetStorage, PSetStorage
de la même procédure

peux tu m'envoyer le code de reoutr de cette fonction :
dim ret as long
ret = StgOpenStorageEx(StrPtr(FileName), STGM_READWRITE Or STGM_SHARE_EXCLUSIVE, STGFMT_ANY, 0&, ByVal 0&, ByVal 0&, IID_IPropertySetStorage, PSetStorage)

biensur, il NE faut PAS que le fichier soit ouvert dans une application quelconque.

enfin, où as tu vu un resume next dans la fonction OpenCreatePropertySet... ?

ShareVB
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 203 internautes nous ont dit merci ce mois-ci

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
14
salut

regarde ma source : http://www.vbfrance.com/code.aspx?id=24534

ShareVB
Messages postés
148
Date d'inscription
dimanche 13 octobre 2002
Statut
Membre
Dernière intervention
13 novembre 2008

ok Merci pour cette info c'est exactement ce qu'il me faut comme source.
Le problème est que ca ne fonctionne pas.
(J'ai vb6 / xp /office 2003)

Pendant l'ouverture fichier par le menu
et lors de l'utilisation de cette fonction :
Set OpenCreatePropertySet = PSetStorage.Open(fmt, STGM_READWRITE Or STGM_SHARE_EXCLUSIVE)
dans la fonction
OpenCreatePropertySet
Un code erreur 91 est généré (Variable objet ou variable bloc With non définie) - rien ne sepasse deplus la gestion d'erreurs est en resume next et donc l'erreur est ignorée.
Avez vous une idée ?
Messages postés
148
Date d'inscription
dimanche 13 octobre 2002
Statut
Membre
Dernière intervention
13 novembre 2008

Apres qq recherches il semble que cette erreur est liée au systeme de fichier.
Sur NTFS j'ai cette erreur
Sur fat32 je n'aipas d'erreur mais les infos que je visualise et gère avec VB ne correspondent pas aux infos visibles par l'explorateur.
deplus j'ai recement installé le service pack 2 de XP (ole32.dll differnet ?)

Merci
Messages postés
148
Date d'inscription
dimanche 13 octobre 2002
Statut
Membre
Dernière intervention
13 novembre 2008

Merci pour ta réponse.
D'après tes explications c donc logique- je devrais differencier les documents office des autres. Seul souci que je dois gérer les documents jpg et avi aussi.

-----------------
De toute facon, voici mes remarques et réponses :
1)
Effectivement, le code d'erreur est généré quand j'essaye d'effectuer cette action sur un fichier non office dans un FAT32.
Donc après ton explication c'est logique.(code ereur 91)
2)
En ce qui concerne NTFS , il n y a pas de code d'erreur mais
pour les documents non office - je visualise des infos qui ne sont pas les memes que sur l'explorateur.(ou sont elles stockées ?)
3)
Pour les documents office c ok sur NTFS et FAT32 - c pas mal mais pas suffisant pour mon projet.
4)
Pour le resume next - tu a raison , il n y a pas de resume next mais l'erreur 91 n'est pas monitorée dans la gestion d'erreurs .

On pourrait avoir un truc de ce style: If Err.Number 91 And flg False Then
MsgBox "Document incompatible pour cette gestion de commentaires":
flg = True
Exit Function
End If
(FLG est un boollean et permet d'eviter la répetition du message d'erreur. flg est de type global et reinitalisé a false pendant action fichier/open.)

5)
Pour le code retour ret=-2147286960
En effet ce code est généré lorsque il s'agit d'un document non office sur FAT32 et sur NTFS.

6)
Dernier point:
Dans la fonction WriteProperty il n'y a pas de gestion d'erreurs.
Lorsque j'essaye d'enregister mes informations sur un fichier non office un messsage plantage est généré avec code d'erreur 91

Milles mercis pour ton attention a mon problème .
a+

>salut
>
>bon déjà le prb, c que chez moi ca marche sur XP SP2 office 2000, et 2K et 98...
>
>sur FAT : seuls les fichiers office peuvent être lus pour les propriétés
>
>sur NTFS : tous les fichiers peuvent être lus
>
>ce problème vient surement de la ligne :
> StgOpenStorageEx StrPtr(FileName), STGM_READWRITE Or STGM_SHARE_EXCLUSIVE, STGFMT_ANY, 0&, ByVal 0&, ByVal 0&, IID_IPropertySetStorage, PSetStorage
>de la même procédure
>
>peux tu m'envoyer le code de reoutr de cette fonction :
>dim ret as long
>ret = StgOpenStorageEx(StrPtr(FileName), STGM_READWRITE Or STGM_SHARE_EXCLUSIVE, STGFMT_ANY, 0&, ByVal 0&, ByVal 0&, IID_IPropertySetStorage, PSetStorage)
>
>biensur, il NE faut PAS que le fichier soit ouvert dans une application quelconque.
>
>enfin, où as tu vu un resume next dans la fonction OpenCreatePropertySet... ?
>
>
>ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
14
salut

on distingue trois cas :
- les fichiers office (indépendants du système de fichier)
- les fichiers images (indépendants du système de fichier)
- les autres fichiers (dépendant de NTFS)

1) normal pour FAT32 : pas de propriétés pour les fichiers non office

2) curieux : avec NTFS tous les fichiers non office sauf les images peuvent contenir des propriétés. les fichiers office aussi. Les images .bmp, .jpg, .tiff, .png ne peuvent en général pas contenir de propriétés (avec cette source) : ce n'est pas le même problème : http://www.vbfrance.com/code.aspx?id=25744

3) que manque-t-il ?

4) le but de la source n'est pas de faire un soft mais de montrer la méthode : pour faire plus simple gestion d'erreur minimale

5) ce code signifit : "le "stream" existe déjà". Ce code devrait donc provenir de PSetStorage.Create et pas de Open.
Dans le cas d'un fichier non office sur FAT32 : normal. Pour un fichier non office sur NTFS c vraiment curieux (d'autant que sur mes deux ordi ca marche impec)...

6) le prb vient de la 5)...

pour les images, regarde la source que j'ai citée plus haut : on peut seulement mettre des propriétés dans un JPEG ou TIFF : impossible pour png,bmp...

ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
14
salut

j'oubliais : pour 2) quelles propriétés sont différentes pour quel type de fichiers ?

ShareVB