ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Extraire une icone d'un exe/dll   



L'auteur

Gregory Adam
Belgique Belgique
Membre Actif (personne physique)
# 0000001121
enregistré le 04/06/2006

Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes

Extraire une icone d'un exe/dll
# 0000000454
ajouté le 27/06/2007 15:57:50 et modifié le 27/06/2007
consulté 11402 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0


Le téléchargement des pièces jointes est limité aux membres
Veuillez vous identifier ou vous inscrire si vous n'avez pas encore de compte ...
Description

Comment extraire/copier une icone d'dun fichier exe/dll ?

Le programme est 'elementaire', cad ne fait que ce dont j'ai besoin en ce moment

  • Extraction
  • d'une icone UneTelle (de 0 a # d'icones -1)
  • Petite ou Grande
  • la sauver dans un fichier

Fonctions de la classe: dans le zip

 

Bonne chance,

ps: Si vfp7 ou 8, il faudra changer les bintoc()

Code source :
Function Icon_test()

  && set proc to IconHandler additive
  local obj, IconCount, FileNameDoc, FileNameExe, FileNameIconSmall, FileNameIcoLarge

  FileNameDoc  = '\tmp\ppp.doc'
  FileNameDoc  = '\tmp\xx.xlsx'
  FileNameDoc  = '\tmp\xxx.pdf'

  FileNameIconSmall  = '\tmp\pdf_IconSmall.ico'
  FileNameIcoLarge  = '\tmp\pdf_IconLarge.ico'

  assert IconHandler_Object(@m.obj)
  assert m.obj.Executable_Get(m.FileNameDoc, @m.FileNameExe)
  assert m.obj.File_Icon_Count(m.FileNameExe, @m.IconCount)
  ?'# icons = ', m.IconCount

  local IconIndex  && from 0 to IconCount-1
  IconIndex = 0
  assert m.obj.File_Icon_Save(m.FileNameExe, m.IconIndex, .t., m.FileNameIconSmall)
  assert m.obj.File_Icon_Save(m.FileNameExe, m.IconIndex , .f., m.FileNameIcoLarge)


endfunc
Commentaires
le 16/10/2007, Marc Thivolle a écrit :
Gregory,

J'ai testé ton programme afin de récupérer l'icône qui s'affiche dans l'explorateur selon le type de fichier (en l'occurence, pour ce test, Excel). Malheureusement, l'exe contenant les icones n'est pas excel.exe mais xlicons.exe (perdu aux fins fonds de \windows\Installer ...). De plus, je ne sais pas quoi faire de la forme small de l'icone.

Merci pour tes lumières.

Marc

le 16/10/2007, Gregory Adam a écrit :
Marc,

J'ai la version office 2007
FileNameExe: C:\Program Files\Microsoft Office\Office12\EXCEL.EXE

IconCount = 25

Qu'est-ce qui ne va pas ?

J'utilise la forme small comme picture dans mes menus par exemple

le 16/10/2007, Marc Thivolle a écrit :
Gregory

J'ai Office 2000. Il y a 18 icones, mais aucune ne correspond à celle qui est utilisée par l'explorateur (celle-ci se trouve dans xlicons.exe).

Pour la forme small, si je la prends comme propriété picture d'un bouton, elle apparait toute floue avec une taille d'environ 40*40 (ce qui est peu gros pour mes boutons 22*22).


le 16/10/2007, Gregory Adam a écrit :
Marc,

Comme j'ai dit j'utilise la Small pour picture dans un menu qui me donne une liste de fichiers dans un repertoire.

Prendre la grande pour un bouton ?

Desole que l'icone ne correspond pas a celle utilisée par l'explorateur ...


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3