OVH Cloud OVH Cloud

Icônes à récuper

10 réponses
Avatar
R. O.
Bonsoir,

Quelqu'un sait-il comment on peut faire ( en VB/VBA)
pour récupérer des icônes
dans un .exe , .dll ou .ico

J'aurais en effet besoin de faire afficher la boite ouvrir...
pour que l'utilisateur choisisse une source d'icône ( shell32.dll par
exemple)

et là, hop, qqpart (sur formulaire sans doute) les icônes disponibles
apparaissent et, quand le monsieur clique dessus, je peux récupérer les
"coordonnées précise"
( type "C:\WINDOWS\SYSTEM\Shell32.dll,4" pour la célèbre icône de
dossier )

Est-ce que cela vous parait faisable ou bien vaut-il mieux y renoncer ?

Avec mes remerciements,

R.O.

10 réponses

Avatar
Alain CROS
Bonjour.

Tu peux regarder là.
http://disciplus.simplex.free.fr/classeursxl/ac-
msgboxicon.zip

Alain CROS.

-----Message d'origine-----
Bonsoir,

Quelqu'un sait-il comment on peut faire ( en VB/VBA)
pour récupérer des icônes
dans un .exe , .dll ou .ico

J'aurais en effet besoin de faire afficher la boite
ouvrir...

pour que l'utilisateur choisisse une source d'icône (
shell32.dll par

exemple)

et là, hop, qqpart (sur formulaire sans doute) les icônes
disponibles

apparaissent et, quand le monsieur clique dessus, je peux
récupérer les

"coordonnées précise"
( type "C:WINDOWSSYSTEMShell32.dll,4" pour la célèbre
icône de

dossier )

Est-ce que cela vous parait faisable ou bien vaut-il
mieux y renoncer ?


Avec mes remerciements,

R.O.




.



Avatar
Hervé
Salur R.O,
Par API :
Private Declare Function SendMessage Lib "User32" Alias _
"SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long _
, ByVal wParam As Integer, ByVal lParam As Long) As Long

Private Declare Function ExtractIcon Lib "shell32.dll" Alias _
"ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName _
As String, ByVal nIconIndex As Long) As Long

Private Declare Function FindWindow Lib "User32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long

Sub ChargerIcone()
Dim ID As Long
Dim Chemin As String
Dim Image
'changer le chemin
Chemin = "C:WINDOWSSYSTEMShell32.dll"
'pour l'application
ID = FindWindow(vbNullString, Application.Caption)
'pour la form
ID = FindWindow(vbNullString, Me.Caption)
'donne le nombre d'icônes dans le dossier
MsgBox ExtractIcon(0&, Chemin, -1)
'icône dans la barre de titre
SendMessage ID, 128, 0, ExtractIcon(0&, Chemin, 4)
End Sub

Avec LoadPicture :
Image1.Picture = LoadPicture("MonCheminMonIcone.ico")

Hervé.

"R. O." a écrit dans le message news:
bla7v2$7ot$
Bonsoir,

Quelqu'un sait-il comment on peut faire ( en VB/VBA)
pour récupérer des icônes
dans un .exe , .dll ou .ico

J'aurais en effet besoin de faire afficher la boite ouvrir...
pour que l'utilisateur choisisse une source d'icône ( shell32.dll par
exemple)

et là, hop, qqpart (sur formulaire sans doute) les icônes disponibles
apparaissent et, quand le monsieur clique dessus, je peux récupérer les
"coordonnées précise"
( type "C:WINDOWSSYSTEMShell32.dll,4" pour la célèbre icône de
dossier )

Est-ce que cela vous parait faisable ou bien vaut-il mieux y renoncer ?

Avec mes remerciements,

R.O.






Avatar
R. O.
"Alain CROS" a écrit dans le message news:
042601c3872c$064a28a0$
Bonjour.

Tu peux regarder là.
http://disciplus.simplex.free.fr/classeursxl/ac-msgboxicon.zip



j'y cours !

Merci

Avatar
R. O.
"Hervé" a écrit dans le message news:



Je vais essayer tout ça et regarder aussi le classeur dans msgboxicon.zip
et puis je pense que cela me suffira.
C'est c't'API là qui me manquait...

Merci beaucoup,

R.O.
Avatar
R. O.
"Alain CROS" a écrit dans le message news:
042601c3872c$064a28a0$
Bonjour.

Tu peux regarder là.
http://disciplus.simplex.free.fr/classeursxl/ac-
msgboxicon.zip


Euh ... on se retrouve sur excelabo et ac-msboxicon.zip semble inconnu...

R.O.

Avatar
Misange
Promis promis Alain, j'en fais bientôt l'annonce officielle ! ;-)))

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= mail : http://cerbermail.com/?k5Q8Dh2mta




"Alain CROS" a écrit dans le message de news:
042601c3872c$064a28a0$
Bonjour.

Tu peux regarder là.
http://disciplus.simplex.free.fr/classeursxl/ac-
msgboxicon.zip

Alain CROS.

-----Message d'origine-----
Bonsoir,

Quelqu'un sait-il comment on peut faire ( en VB/VBA)
pour récupérer des icônes
dans un .exe , .dll ou .ico

J'aurais en effet besoin de faire afficher la boite
ouvrir...

pour que l'utilisateur choisisse une source d'icône (
shell32.dll par

exemple)

et là, hop, qqpart (sur formulaire sans doute) les icônes
disponibles

apparaissent et, quand le monsieur clique dessus, je peux
récupérer les

"coordonnées précise"
( type "C:WINDOWSSYSTEMShell32.dll,4" pour la célèbre
icône de

dossier )

Est-ce que cela vous parait faisable ou bien vaut-il
mieux y renoncer ?


Avec mes remerciements,

R.O.




.



Avatar
Misange
Bonjour
tu n'as pas du taper l'adresse en entier. Je te confirme que le fichier
d'Alain est bien dispo mais il n'est effectivement pas encore annoncé sur
excelabo.
Réessaie
http://disciplus.simplex.free.fr/classeursxl/ac-msgboxicon.zip
sans interrompre l'adresse

--
Misange migrateuse http://www.excelabo.net
==Disciplus a migré chez excelabo !======= mail : http://cerbermail.com/?k5Q8Dh2mta




"R. O." a écrit dans le message de news:
blcsn0$cs4$

"Alain CROS" a écrit dans le message news:
042601c3872c$064a28a0$
Bonjour.

Tu peux regarder là.
http://disciplus.simplex.free.fr/classeursxl/ac-
msgboxicon.zip


Euh ... on se retrouve sur excelabo et ac-msboxicon.zip semble inconnu...

R.O.





Avatar
R. O.
"Misange" a écrit dans le message news:
3f7a7ae5$0$27581$
Bonjour
tu n'as pas du taper l'adresse en entier. Je te confirme que le fichier
d'Alain est bien dispo mais il n'est effectivement pas encore annoncé sur
excelabo.
Réessaie
http://disciplus.simplex.free.fr/classeursxl/ac-msgboxicon.zip
sans interrompre l'adresse

OK et pardon,


J'ai donc récupéré msgboxicon mais cela ne fait pas tout à fait mon affaire
:o(
je désire récupérer les icons pour pouvoir les montrer toutes dans une
fenêtre de façon que l'utilisateur puisse choisir en cliquant dessus.

Les passer un à un sur une msgbox ( ou dans la barre de titre d'une fenêtre
...) ne me semble donc pas très adapté.

Peut-on donc les transmettre à des objets picture ( par exemple ) pour les
avoir concrètement sous la main ?

Merci de votre patiente, moi et les api ça fait deux :o)

R.O.

Avatar
Alain CROS
Bonjour.

Il me semble que ce que tu cherche à faire est assez compliqué a réaliser sur XL.
Toi et les api ne devront faire plus qu'un !!!
Les objects picture n'accepte pas un handle que tu peux récupérer avec extractIcon.
Si quelqu'un peut démentir, qu'il n'hésite pas.
Le principe que je propose est le suivant :
Tu fais la liste des icons présents dans shell32 comme présenté dans le fichier proposé.
Pour chaque icon, tu crée un control Static comme présenté dans le fichier
http://disciplus.simplex.free.fr/classeursxl/mp-subclassing.zip dans le code de frmResize.
Il faudra bien géré la position de ces controls pour qu'il ne soit pas tous les uns sur les autres.
Attention, sur WinXP, shell32 contient environ 250 icons. Il te faudra donc créer 250 controls Static.
Ensuite, pour que l'utilisateur puisse choisir en cliquant dessus, la aussi tu t'inspire du magnifique classeur
cité précédemment pour intercepter l' événement click sur chacun de ces controls.
A mon avis, c'est un travail de longue haleine.
Bon courage.

Alain CROS.


J'ai donc récupéré msgboxicon mais cela ne fait pas tout à fait mon affaire
:o(
je désire récupérer les icons pour pouvoir les montrer toutes dans une
fenêtre de façon que l'utilisateur puisse choisir en cliquant dessus.

Les passer un à un sur une msgbox ( ou dans la barre de titre d'une fenêtre
...) ne me semble donc pas très adapté.

Peut-on donc les transmettre à des objets picture ( par exemple ) pour les
avoir concrètement sous la main ?

Merci de votre patiente, moi et les api ça fait deux :o)

R.O.




Avatar
R. O.
"Alain CROS" a écrit dans le message news:
#
Bonjour.

Il me semble que ce que tu cherche à faire est assez compliqué a réaliser
sur XL.

(...)
et la suite le prouva ! :o(

ben, j'crois qu'j'vais faire sans ...

Merci pour votre grande patience !

R.O.