Sauvegarder l'image contenue dans un imagegadget
Publié : mer. 17/févr./2016 18:37
Je m'énerve depuis plusieurs jour sur un truc probablement bête, mais j'ai du mal entre image et imageid etc
Dans mon programme, pour accélérer le chargement, je souhaite sauver chaque icône dès qu'elle a été chargée au moins une fois.
J'ai donc pensé à SaveImage() et ça marche bien si je charge une image avant avec LoadImage(), mais pas dans mon cas ou mes images sont les icônes des EXE.
J'ai chaque fois le message:
Mes boutons sont des gadget images et je charge les icônes des programmes avec la procédure que vous m'avez donné il y a quelque temps.
tout marche, mais je n'arrive pas à sauvegarder le contenu avec SaveImage()
Exemple:
Mettez SaveImage() en commentaire, le chargement se fait bien.
Réactivez-le: erreur
J'ai essayé getgadgetstate() qui en principe doit renvoyer l'ID pour l'image, mais ça ne marche pas.
Surement un truc bête, mais quand on a le nez sur l'écran depuis un temps fou, on s'enfonce

Dans mon programme, pour accélérer le chargement, je souhaite sauver chaque icône dès qu'elle a été chargée au moins une fois.
J'ai donc pensé à SaveImage() et ça marche bien si je charge une image avant avec LoadImage(), mais pas dans mon cas ou mes images sont les icônes des EXE.
J'ai chaque fois le message:
Code : Tout sélectionner
[ERREUR] Ligne: 14
[ERREUR] Le #Image spécifié n'est pas initialisé.
tout marche, mais je n'arrive pas à sauvegarder le contenu avec SaveImage()
Exemple:
Code : Tout sélectionner
Procedure GetAssociatedFileIcon(IconPath.s, IconSize)
Protected FileInfo.SHFILEINFO
SHGetFileInfo_(IconPath, 0, @FileInfo, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_LARGEICON)
ProcedureReturn FileInfo\hIcon
EndProcedure
OpenWindow(0, 0, 0, 500, 300, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ImageGadget(id, 0, 0, 100, 100, GetAssociatedFileIcon("C:\Windows\System32\notepad.exe ", #SHGFI_SMALLICON))
SaveImage(id, "C:\Tmp\icone.bmp")
Repeat : Until WaitWindowEvent(50) = #PB_Event_CloseWindow
Réactivez-le: erreur

J'ai essayé getgadgetstate() qui en principe doit renvoyer l'ID pour l'image, mais ça ne marche pas.
Surement un truc bête, mais quand on a le nez sur l'écran depuis un temps fou, on s'enfonce
