
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
