|
| Acceder a l'icone de l'application par code |
| Iniciado por Der§en, 20,abr. 2020 14:58 - 11 respuestas |
| |
| | | |
|
| |
Miembro registrado 334 mensajes |
|
| Publicado el 20,abril 2020 - 14:58 |
Bonjour,
Par code, peux-ton accéder a l’icône de l'application ?
Un peu comme celle d'une fenêtre genre: FEN_Princiapl.Icone !
J4ai bien essayer d'utiliser le nom de mon programme plus .Icone mais il ne connais pas le mon de mon programme (en interne)...
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.321 mensajes |
|
| Publicado el 20,abril 2020 - 16:47 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 189 mensajes |
|
| Publicado el 20,abril 2020 - 17:25 |
Bonjour Dergen,
L'icône d'une application est enregistrée "en dur" dans l'exécutable, il n'est pas possible de la modifier par programmation.
Jean-Marc |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 20,abril 2020 - 18:54 |
Bonjour Bien sur que cela est possible (voir http://angusj.com/resourcehacker/) mais cela ne va pas être possible avec 3 lignes de code...
-- « L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ; la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 151 mensajes |
|
| Publicado el 20,abril 2020 - 19:51 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 189 mensajes |
|
| Publicado el 20,abril 2020 - 19:59 |
La question était, il me semble, comment accéder à l'icône de l'application en cours avec le wlangage, ce qui, à ma connaissance n'est pas possible. Sinon, il existe effectivement des extracteurs d'icônes à la pelle à partir d'EXE ou de DLL.
J'en avais fait un en W21, si tu veux le code... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 334 mensajes |
|
| Publicado el 20,abril 2020 - 22:46 |
Merci pour vos réponses, je ne cherchais pas à le modifier, juste à y accéder pour lecture.
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 334 mensajes |
|
| Publicado el 20,abril 2020 - 22:47 |
Patrice TERRIER a écrit :
C'est parfaitement possible et relativement simple, à condition d'utiliser directement l'API bas niveau depuis WinDev. -- Patrice Terrier www.zapsolution.com
Mais encore ?
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 151 mensajes |
|
| Publicado el 21,abril 2020 - 09:48 |
Avez-vous lu la documentation MSDN, tout y est expliqué.
Utilisez ExtractIconExA pour une chaine asciiz ANSI et ExtractIconExW pour une chaine UNICODE
Exemple:
FUNCTION ExtractIconEx(LOCAL szFile is string, LOCAL nIconIndex is int, phIconLarge is system int, phIconSmall is system int, LOCAL nIcons is unsigned int) nRet is unsigned int = API("SHELL32", "ExtractIconExW", AnsiToUnicode(szFile), nIconIndex, &phIconLarge, &phIconSmall, nIcons) RESULT nRet
-- Patrice Terrier www.zapsolution.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.002 mensajes |
|
| Publicado el 21,abril 2020 - 10:22 |
Bonjour,
il suffit de rajouter l'image dans ton exe dans la rubrique "autres" et d'y accéder directement..
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 21,abril 2020 - 10:23 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 21,abril 2020 - 15:30 |
Voir le message WM_GETICON https://docs.microsoft.com/en-us/windows/win32/winmsg/wm-geticon --------------------------------------------------------------------------------
soit GCL_HICON = -14 soit ICON_BIG = 1 soit SMTO_ABORTIFHUNG = 0x0002
nHIcon est entier nHWnd est entier = Handle()
API("user32", "SendMessageTimeoutA", nHWnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 1000, &nHIcon); IF (nHIcon = 0) ALORS nHIcon = API("User32", "GetClassLongA", nHWnd, GCL_HICON); IF (nHIcon = 0) ALORS API("user32", "SendMessageTimeoutA", nHWnd, WM_QUERYDRAGICON, 0, 0, SMTO_ABORTIFHUNG, 1000, &nHIcon); IF (nHIcon > 0) ALORS ////IMG_ICON : Champ image : largeur = 32 x Hauteur = 32 IMG_ICON..AffichageActif = Faux API("user32", "DrawIcon", dDébutDessin(IMG_ICON, dEffacer), 0,0, nHIcon) IMG_ICON..AffichageActif = Vrai SINON // END |
| |
| |
| | | |
|
| | | | |
| | |
|