OVH Cloud OVH Cloud

[WD9] récupérer le type d'un fichier et son icone

13 réponses
Avatar
Vincent
Bonjour,

J'aimerai savoir quand dans une liste je sélectionne un fichier, quelle
icone est associée,
quel est le type de ficher et s'il y a une application par défaut d'associée

fichiers word, excell, images, html etc ....

Est-ce possible avec le code windev ?

Merci

Vincent

3 réponses

1 2
Avatar
Vincent
Non je n'ai pas trouvé. je cherche une solution comptatible avec 2000 et xp.
Si c'est trop système, j'ai peur d'avoir des problèmes de compatibilité.
pour le moment, je me suis fais une liste d'extension et d'icones par defaut

Vincent


"Christophe Charron" a écrit dans le
message de news: 43940164$0$27841$
Vincent a écrit :
Merci pour ta réponse; fattribut comme son nom l'indique,
ne fait que gérer les attributs d'un fichier, pas le reste.
J'imagine que toutes les infos que jecherche sont dans les
registres


Vincent


"paratge" a écrit dans le message de news:


Vincent a écrit :

Bonjour,

J'aimerai savoir quand dans une liste je sélectionne un fichier, quelle
icone est associée,
quel est le type de ficher et s'il y a une application par défaut
d'associée

fichiers word, excell, images, html etc ....

Est-ce possible avec le code windev ?

Merci

Vincent



Bonsoir,

Il y a la fonction "fAttribut" qui permet de connaître tout cela.







Bonjour,
finalement, as-tu trouvé ? sinon je t'envoie le code en privé.

--
Cordialement
Christophe Charron

PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:


Avatar
Christophe Charron
Vincent a écrit :
Non je n'ai pas trouvé. je cherche une solution comptatible avec 2000 et xp.
Si c'est trop système, j'ai peur d'avoir des problèmes de compatibilité.
pour le moment, je me suis fais une liste d'extension et d'icones par defaut

Vincent


"Christophe Charron" a écrit dans le
message de news: 43940164$0$27841$

Vincent a écrit :

Merci pour ta réponse; fattribut comme son nom l'indique,
ne fait que gérer les attributs d'un fichier, pas le reste.
J'imagine que toutes les infos que jecherche sont dans les
registres


Vincent


"paratge" a écrit dans le message de news:



Vincent a écrit :


Bonjour,

J'aimerai savoir quand dans une liste je sélectionne un fichier, quelle
icone est associée,
quel est le type de ficher et s'il y a une application par défaut
d'associée

fichiers word, excell, images, html etc ....

Est-ce possible avec le code windev ?

Merci

Vincent



Bonsoir,

Il y a la fonction "fAttribut" qui permet de connaître tout cela.







Bonjour,
finalement, as-tu trouvé ? sinon je t'envoie le code en privé.

--
Cordialement
Christophe Charron

PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:







Bonsoir,

soit
******************
// Syntaxe :
//[ <Résultat> = ] FA_Gère_Icone (<sRépertoireTemporaire>,
<vl_c_extension>, <vl_c_Fenetre_Champ>, <vl_b_Extraire>)
//
// Paramètres :
// sRépertoireTemporaire : <Répertoire temporaire dans lequel on va
créer le fichier temporaire>
// vl_c_extension : <Extension de fichier pour laquelle on va créer un
fichier image>
// vl_c_Fenetre_Champ : <fenetre et champ image dans lesquelles on va
dessiner l'icone (menu_0000.icone)>
// vl_b_Extraire : <Veut-on réellement extraire l'icone ? a priori
valeur de Base_CRM.va_b_Extraire_Icones_Doc>
// Valeur de retour :
// Type indéterminé :


PROCEDURE
FA_Gère_Icone(sRépertoireTemporaire,vl_c_extension,vl_c_Fenetre_Champ,vl_b_Extraire)
LOCAL
HandleIcone est un entier
sFichierTemporaire est une chaîne
//
SI PAS vl_b_Extraire ALORS RENVOYER ""
SI SansEspace(vl_c_extension) = "" ALORS RENVOYER ""
fRepCrée(sRépertoireTemporaire)
// Crée un fichier temporaire
sFichierTemporaire = fFichierTemp("", sRépertoireTemporaire) +
vl_c_extension
sFichierTemporaire = sRépertoireTemporaire+"Fic"+vl_c_extension
SI fFichierExiste(sFichierTemporaire+".bmp") ALORS
RENVOYER sFichierTemporaire+".bmp"
FIN
SI PAS fFichierExiste(sFichierTemporaire) ALORS
fCrée(sFichierTemporaire)
FIN
// Extraction de l'icone associée au type de fichier
HandleIcone = ExtraireIconeAssocié(sFichierTemporaire)
SI HandleIcone = 0 ALORS RENVOYER ""
// Dessine l'icone selon son handle
DessineIcone(HandleIcone, vl_c_Fenetre_Champ)
// Prépare un fichier .BMP
sFichierTemporaire += ".bmp"
// Sauve l'icone au format BMP
dSauveImageBMP(vl_c_Fenetre_Champ, sFichierTemporaire)
dFinDessin(vl_c_Fenetre_Champ)
RENVOYER sFichierTemporaire
*****************
et
****************
// Description des paramètres d'entrée/sortie de 'ExtraireIconeAssocié' :
//
// Syntaxe :
//[ <Résultat> = ] ExtraireIconeAssocié (<Fichier>[, <Indice>])
//
// Paramètres :
// Fichier : <indiquez ici le rôle de Fichier>
// Indice : <indiquez ici le rôle de Indice>
// Valeur de retour :
// Type indéterminé : // Aucune
//
// Extrait l'icone de l'exécutable ou élément associé au fichier passé
en paramètre
// selon son indice
// Fichier : Chemin complet du fichier dont l'icone associée doit être
extraite
// Indice : Numéro d'indice de l'icone associée. Par défaut ce
paramètre vaut 0
PROCEDURE ExtraireIconeAssocié(Fichier, Indice = 0)

QUAND EXCEPTION RENVOYER Faux

RENVOYER API("SHELL32", "ExtractAssociatedIconA", SysInstance(),
&Fichier, &Indice)
***************
ainsi que
****************
// Description des paramètres d'entrée/sortie de 'DessineIcone' :
//
// Syntaxe :
//[ <Résultat> = ] DessineIcone (<HandleIcone>, <ChampImage>)
//
// Paramètres :
// HandleIcone : <indiquez ici le rôle de HandleIcone>
// ChampImage : <indiquez ici le rôle de ChampImage>
// Valeur de retour :
// Type indéterminé : // Aucune
//
// Desssine un icone dans un champ Image
// HandleIcone : Handle de l'icone à dessiner renvoyé par ExtraireIcone
et ExtraireIconeAssocié
// ChampImage : Nom du champ Image dans lequel l'icone doit être dessiné
PROCEDURE DessineIcone(HandleIcone, ChampImage)

QUAND EXCEPTION RENVOYER Faux

// Récupère le Device Context du champ Image
nDC est un entier = dDébutDessin(ChampImage)
x, y sont des entiers = 0

// Dessine l'icone dans le champ Image
API("User32", "DrawIcon", nDC, x, y, HandleIcone)

// Libère le Device Context du champ Image
SysLibereDC()

// Détruit l'icone pour libérer la mémoire
RENVOYER DétruitRessourceIcone(HandleIcone)
****************
complété par
***************
// Description des paramètres d'entrée/sortie de 'DétruitRessourceIcone' :
//
// Syntaxe :
//[ <Résultat> = ] DétruitRessourceIcone (<HandleIcone>)
//
// Paramètres :
// HandleIcone : <indiquez ici le rôle de HandleIcone>
// Valeur de retour :
// Type indéterminé : // Aucune
//
// Détruit les ressources allouées par l'icone
// HandleIcone : Handle de l'icone renvoyé par ExtraireIconeAsssociée
et ExtraireIcone
PROCEDURE DétruitRessourceIcone(HandleIcone)

QUAND EXCEPTION RENVOYER Faux

RENVOYER API("User32", "DestroyIcon", HandleIcone)
*******************

Voila, voilou, mais tout ce code n'est pas de moi, je ne sais plus à qui
je l'ai pompé !!!


--
Cordialement
Christophe Charron

PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:
Avatar
Vincent
heu !?! impressionnant :)

Merci

Vincent


"Christophe Charron" a écrit dans le
message de news: 439852dd$0$22155$
Vincent a écrit :
Non je n'ai pas trouvé. je cherche une solution comptatible avec 2000 et
xp.
Si c'est trop système, j'ai peur d'avoir des problèmes de compatibilité.
pour le moment, je me suis fais une liste d'extension et d'icones par
defaut

Vincent


"Christophe Charron" a écrit dans le
message de news: 43940164$0$27841$

Vincent a écrit :

Merci pour ta réponse; fattribut comme son nom l'indique,
ne fait que gérer les attributs d'un fichier, pas le reste.
J'imagine que toutes les infos que jecherche sont dans les
registres


Vincent


"paratge" a écrit dans le message de news:



Vincent a écrit :


Bonjour,

J'aimerai savoir quand dans une liste je sélectionne un fichier,
quelle icone est associée,
quel est le type de ficher et s'il y a une application par défaut
d'associée

fichiers word, excell, images, html etc ....

Est-ce possible avec le code windev ?

Merci

Vincent



Bonsoir,

Il y a la fonction "fAttribut" qui permet de connaître tout cela.







Bonjour,
finalement, as-tu trouvé ? sinon je t'envoie le code en privé.

--
Cordialement
Christophe Charron

PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:







Bonsoir,

soit
******************
// Syntaxe :
//[ <Résultat> = ] FA_Gère_Icone (<sRépertoireTemporaire>,
<vl_c_extension>, <vl_c_Fenetre_Champ>, <vl_b_Extraire>)
//
// Paramètres :
// sRépertoireTemporaire : <Répertoire temporaire dans lequel on va créer
le fichier temporaire>
// vl_c_extension : <Extension de fichier pour laquelle on va créer un
fichier image>
// vl_c_Fenetre_Champ : <fenetre et champ image dans lesquelles on va
dessiner l'icone (menu_0000.icone)>
// vl_b_Extraire : <Veut-on réellement extraire l'icone ? a priori valeur
de Base_CRM.va_b_Extraire_Icones_Doc>
// Valeur de retour :
// Type indéterminé :


PROCEDURE
FA_Gère_Icone(sRépertoireTemporaire,vl_c_extension,vl_c_Fenetre_Champ,vl_b_Extraire)
LOCAL
HandleIcone est un entier
sFichierTemporaire est une chaîne
// SI PAS vl_b_Extraire ALORS RENVOYER ""
SI SansEspace(vl_c_extension) = "" ALORS RENVOYER ""
fRepCrée(sRépertoireTemporaire)
// Crée un fichier temporaire
sFichierTemporaire = fFichierTemp("", sRépertoireTemporaire) +
vl_c_extension
sFichierTemporaire = sRépertoireTemporaire+"Fic"+vl_c_extension
SI fFichierExiste(sFichierTemporaire+".bmp") ALORS
RENVOYER sFichierTemporaire+".bmp"
FIN
SI PAS fFichierExiste(sFichierTemporaire) ALORS
fCrée(sFichierTemporaire)
FIN
// Extraction de l'icone associée au type de fichier
HandleIcone = ExtraireIconeAssocié(sFichierTemporaire)
SI HandleIcone = 0 ALORS RENVOYER ""
// Dessine l'icone selon son handle
DessineIcone(HandleIcone, vl_c_Fenetre_Champ)
// Prépare un fichier .BMP
sFichierTemporaire += ".bmp"
// Sauve l'icone au format BMP
dSauveImageBMP(vl_c_Fenetre_Champ, sFichierTemporaire)
dFinDessin(vl_c_Fenetre_Champ)
RENVOYER sFichierTemporaire
*****************
et
****************
// Description des paramètres d'entrée/sortie de 'ExtraireIconeAssocié' :
//
// Syntaxe :
//[ <Résultat> = ] ExtraireIconeAssocié (<Fichier>[, <Indice>])
//
// Paramètres :
// Fichier : <indiquez ici le rôle de Fichier>
// Indice : <indiquez ici le rôle de Indice>
// Valeur de retour :
// Type indéterminé : // Aucune
//
// Extrait l'icone de l'exécutable ou élément associé au fichier passé en
paramètre
// selon son indice
// Fichier : Chemin complet du fichier dont l'icone associée doit être
extraite
// Indice : Numéro d'indice de l'icone associée. Par défaut ce paramètre
vaut 0
PROCEDURE ExtraireIconeAssocié(Fichier, Indice = 0)

QUAND EXCEPTION RENVOYER Faux

RENVOYER API("SHELL32", "ExtractAssociatedIconA", SysInstance(), &Fichier,
&Indice)
***************
ainsi que
****************
// Description des paramètres d'entrée/sortie de 'DessineIcone' :
//
// Syntaxe :
//[ <Résultat> = ] DessineIcone (<HandleIcone>, <ChampImage>)
//
// Paramètres :
// HandleIcone : <indiquez ici le rôle de HandleIcone>
// ChampImage : <indiquez ici le rôle de ChampImage>
// Valeur de retour :
// Type indéterminé : // Aucune
//
// Desssine un icone dans un champ Image
// HandleIcone : Handle de l'icone à dessiner renvoyé par ExtraireIcone et
ExtraireIconeAssocié
// ChampImage : Nom du champ Image dans lequel l'icone doit être dessiné
PROCEDURE DessineIcone(HandleIcone, ChampImage)

QUAND EXCEPTION RENVOYER Faux

// Récupère le Device Context du champ Image
nDC est un entier = dDébutDessin(ChampImage)
x, y sont des entiers = 0

// Dessine l'icone dans le champ Image
API("User32", "DrawIcon", nDC, x, y, HandleIcone)

// Libère le Device Context du champ Image
SysLibereDC()

// Détruit l'icone pour libérer la mémoire
RENVOYER DétruitRessourceIcone(HandleIcone) ****************
complété par
***************
// Description des paramètres d'entrée/sortie de 'DétruitRessourceIcone' :
//
// Syntaxe :
//[ <Résultat> = ] DétruitRessourceIcone (<HandleIcone>)
//
// Paramètres :
// HandleIcone : <indiquez ici le rôle de HandleIcone>
// Valeur de retour :
// Type indéterminé : // Aucune
//
// Détruit les ressources allouées par l'icone
// HandleIcone : Handle de l'icone renvoyé par ExtraireIconeAsssociée et
ExtraireIcone
PROCEDURE DétruitRessourceIcone(HandleIcone)

QUAND EXCEPTION RENVOYER Faux

RENVOYER API("User32", "DestroyIcon", HandleIcone)
*******************

Voila, voilou, mais tout ce code n'est pas de moi, je ne sais plus à qui
je l'ai pompé !!!


--
Cordialement
Christophe Charron

PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:


1 2