Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| changer vos icone panoramic | |
| | |
Auteur | Message |
---|
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: changer vos icone panoramic Ven 29 Mai 2015 - 14:23 | |
| salut voila j’ai créé un p'tit programme pour changer vos icône de vos projets généré en .exe par panoramic je vais voir si là, il y aura quelqu'un pour répondre ce qu'il en pense et le modifier a son gré si je ne vient plus sur le forum c'est que j'ai constaté que personne ne répond lorsque je demande une chose ou bien les réponses sont hors sujet mais bon ce n'ai pas grave cela ne m’empêche de dormir allez a+ - Code:
-
dim FichierExe$,ext$,FichierIco$,dossierExe$,dossierIco$,FichierBat$ dim retour dim a$,rhacker$ a$=" rhacker$="C:\Program Files\Resource Hacker\ResHacker.exe" label creer
DLL_ON "form.dll" retour = DLL_CALL2("SetSize",HANDLE(0),0) WIDTH 0,WIDTH(0)+1 : ' obligatoire pour "forcer" le rafraichissement de l'affichage du formulaire retour = DLL_CALL2("SetMinimize",HANDLE( 0),0) retour = DLL_CALL2("SetMaximize",HANDLE( 0),0) dll_off
caption 0,"GetIcon" height 0,300 : width 0,600
Button 10 : caption 10,"Creer" left 10,15 : top 10,220 on_click 10,creer
container 20 top 20,50 : Left 20,20 height 20,40 : width 20,160 Caption 20," Executable "
alpha 21 parent 21,20 : color 21,255,255,255 full_space 21 font_size 21,10
container 30 top 30,50 : Left 30,width(20)+50 height 30,40 : width 30,160 Caption 30," Icon "
alpha 31 parent 31,30 : color 31,255,255,255 full_space 31 font_size 31,10
alpha 32 : caption 32,"" top 32,30 : left 32,20
alpha 33 : caption 33,"" top 33,30 : left 33,width(20)+50
container 40 top 40,20 : Left 40,380 height 40,200 : width 40,202 Caption 40," Apperçu "
scene2d 41 height 41,180 : top 41,20 parent 41,40
open_dialog 50 filter 50,"Executable | *.exe" open_dialog 51 filter 51,"Icon | *.ico"
end
creer: ' ************Sélection des fichiers!************* caption 21,"" caption 31,"" caption 32,"" caption 33,"" ext$="" FichierExe$="" FichierIco$="" dossierExe$="" dossierIco$="" FichierBat$=""
' ***********Executable*************************** dossierExe$=file_name$(50) if dossierExe$="_" then return
FichierExe$=file_extract_name$(dossierExe$) caption 21,FichierExe$
dossierExe$=file_extract_path$(dossierExe$) caption 32,dossierExe$
' ***********Icône*************************** dossierIco$=file_name$(51) if dossierIco$="_" then return
FichierIco$=file_extract_name$(dossierIco$) caption 31,FichierIco$
dossierIco$=file_extract_path$(dossierIco$) caption 33,dossierIco$
' ******************************************* if dossierIco$<>dossierExe$ Message "L'icône doit être du même dossier" caption 21,"" caption 31,"" caption 32,"" caption 33,"" ext$="" FichierExe$="" FichierIco$="" dossierExe$="" dossierIco$="" FichierBat$="" return end_if
inactive 10
' ***************creation du script*************** ext$=file_extract_extension$(FichierExe$) FichierExe$=left$(FichierExe$,len(FichierExe$)-len(ext$))
file_open_write 1,dossierExe$+FichierExe$+".scp" file_writeln 1,"//Ce script change l'icon" file_writeln 1,"" file_writeln 1," [FILENAMES]" file_writeln 1," Exe= "+dossierExe$+FichierExe$+".exe" file_writeln 1," SaveAs= "+dossierExe$+FichierExe$+"_Nouveau.exe" file_writeln 1,"" file_writeln 1," [COMMANDS]" file_writeln 1," -addoverwrite "+dossierIco$+FichierIco$+", ICONGROUP,MAINICON,0" file_close 1
' ***************creation du script .bat*************** FichierBat$=FichierExe$ file_open_write 2,dossierExe$+FichierBat$+".bat" file_writeln 2," "+a$+rhacker$+a$+" -script "+a$+dossierExe$+FichierBat$+".scp"+a$ file_close 2
execute_wait FichierBat$+".bat"
file_delete dossierExe$+FichierExe$+".scp" file_delete dossierExe$+FichierBat$+".bat" active 10 return | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Ven 29 Mai 2015 - 14:48 | |
| C'est un bel exemple d'utilisation d'un outil externe, Reshacker en l'espèce. Et l'astuce est utile et intéressante. Merci pour le partage, Pascal10000 ! | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Ven 29 Mai 2015 - 14:57 | |
| merci klaus mais je n'ai pas réussi a envoyer l'image de l'icone au picture avec kfg car il me met limage en mémoire de 32x32 pixel avec tes exemples donc si tu as la solution a améliorer ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: changer vos icone panoramic Ven 29 Mai 2015 - 15:07 | |
| T'es dur Pascal10000. On essaye de répondre en règle générale... après il y a des fois où on ne peut pas pour différente raisons. Sinon, tu devrais juste dire qu'il faut Reshacker et rappeler aux gens comment récupérer la dll: form.dll car tout le monde ne l'utilise pas. Moi, ici au boulot, je ne peux pas les installer mais je testerais ce soir. J'ai regardé le source et c'est prometteur | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Ven 29 Mai 2015 - 16:03 | |
| non je suis réaliste le sujet "imprimer un grid" 87 visiteurs, 0 réponse! sur ça j'ai du utiliser une ruse qui est un peut blizzard c'est d'ouvrir le fichier avec wordpad et d'imprimer! c'est un programme qui sert a gérer les points obtenu a un tournoi et plus particulièrement pour le jeu de dame et il peut être convoité par les clubs et par la FFJD.
la form.dll est une librairie de nardo vous pouvez utilisé kgf.dll de klaus! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Ven 29 Mai 2015 - 19:20 | |
| @Pascal10000: Si tu as un problème précis avec des fonctions de KGF.dll, poste-moi le code (le plus réduit possible) permettant de reproduire le problème, et explique-moi ce que tu veux faire et ce qui ne marche pas. Dans ce cas, je peux, soit corriger le bug, soit te donner la manière correcte de procéder. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 29 Mai 2015 - 19:52 | |
| Bel utilitaire, je garde ! Tu peux améliorer en remplacant la fenêtre noire par une fenêtre d' attente plus jolie... Mais c' est un détail. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Ven 29 Mai 2015 - 21:15 | |
| klaus bon ce matin j'ai essayé tes exemples qui sont présent dans le document de kgf et ouvrir un icône de 48x48 pixels dans le picture et celui-ci figure que le quart de l'image à partir du haut a gauche dsl je n'arrive pas a mettre une photo et le strechs_on ne fonctionne pas
ygeronimi ne t'y fis pas de trop dès que je change un autre programme il ne fonctionne pas alors que des que je clic sur le fichier (.bat) ça fonctionne ! la commande "execute_wait" na pas l'air de vouloir lancer le fichier '.bat' comme il faut donc si une personne trouve la solution qu'il le poste
Dernière édition par pascal10000 le Ven 29 Mai 2015 - 21:24, édité 1 fois (Raison : https://i.servimg.com/u/f19/16/91/51/90/captur30.png) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 0:00 | |
| Tu veux utiliser quelle fonction ? LoadPicture, LoadAnyImageFile ? Ou une autre ? Ce que je peux te dire, c'est qu'avec le code pris dans KGF.chm tel qu'il est, je charge sans problème une photo de 4608x3456 pixels, utilisant le stretch_on... Voici la preuve: Et voici le code copiable: - Code:
-
' test_LoadAnyImageFile.bas
label ouvrir
dim f$, res%
button 1 : top 1,10 : left 1,10 caption 1,"Ouvrir" : on_click 1,ouvrir picture 2 : top 2,40 : left 2,10 : stretch_on 2 width 2,450 : height 2,300 open_dialog 3
dll_on "KGF.dll"
end
ouvrir: f$ = file_name$(3) if f$="_" then return res% = dll_call1("LoadAnyImageFile",adr(f$)) clipboard_paste 2 display return
Je ne sais pas que te dire de plus. Poste-moi le morceau de code qui ne marche pas, et je pourrai t'en dire plus. Tu sais, quelque soit le problème, nous tous, nous te demanderons un morceau de code précis, exécutable, afin de pouvoir reproduire le problème, car sinon, on parle manifestement dans le vide. PS. C'est une photo de Muscaris que j'ai faite dans mon jardin... Ce n'est pas une photo copiée sur internet. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 6:07 | |
| bjr klaus je ne conteste pas! avec les images ça marche très bien mais les icones y a un prb voici le code - Code:
-
' test_LoadAnyImageFile.bas
label ouvrir
dim f$, res%
button 1 : top 1,10 : left 1,10
caption 1,"Ouvrir" : on_click 1,ouvrir
picture 2 : top 2,40 : left 2,10 : stretch_on 2
width 2,200 : height 2,200
open_dialog 3
dll_on "KGF.dll"
end
ouvrir:
f$ = file_name$(3)
if f$="_" then return
res% = dll_call1("LoadAnyImageFile",adr(f$))
clipboard_paste 2
display
return l'image obtenu l'icône proprement dit et selon dans la documentation le code gère également les icônes. même avec l'option "res% = dll_call2("ResizePicture",48,48) rien ne se passe je pense bien t'avoir bien expliqué! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 30 Mai 2015 - 6:25 | |
| J' ai mis ton programme à ma sauce... Suppression de la fenêtre noire et quelques bricoles... Je mets un zip sur mon webdav mais voilà le code nu : - Code:
-
hide 0 Variables() Labels() Init() Gui() show 0 set_focus 0 end
' DECLARATION DES VARIABLES SUB Variables() ' fichiers dim rhacker$ : rhacker$ = "C:\Program Files\Resource Hacker\ResHacker.exe" dim Param$ : Param$ = dir_current$+"\Param.inf" dim kgf$ : kgf$ = dir_current$+"\KGF.dll" dim fond$ : fond$ = dir_current$+"\fond.jpg" ' événements dim clic% dim change% ' objets dim no% dim Fd% : no%=no%+1 : Fd% = no% dim ProjectName% : no%=no%+1 : ProjectName% = no% dim ProjectIco% : no%=no%+1 : ProjectIco% = no% dim Preview% : no%=no%+1 : Preview% = no% dim ButExe% : no%=no%+1 : ButExe% = no% dim ButIco% : no%=no%+1 : ButIco% = no% dim ButCreate% : no%=no%+1 : ButCreate% = no% dim ButQuit% : no%=no%+1 : ButQuit% = no% dim OpenDial% : no%=no%+1 : OpenDial% = no% dim Fow% : no%=no%+1 : Fow% = no% dim Foread% : no%=no%+1 : Foread% = no% ' application dim Retour$ dim FichierExe$ dim ext$ dim FichierIco$ dim dossierExe$ dim dossierIco$ dim FichierBat$ dim retour dim a$ : a$=" END_SUB
' DECLARATION DES LABELS SUB Labels() label close label change label clic label L END_SUB
' INITIALISATIONS SUB Init() dim_local i% if file_exists(rhacker$)=0 if file_exists(Param$)=1 file_open_read foread%,Param$ file_readln foread%,rhacker$ file_close foread% else L: New_Url_Rhacker() if rhacker$="" i%=message_warning_yes_no("L' URL de ResHacker.exe est invalide !"++"Voulez vous la changer ?...") if i%=1 goto L else Quitter() end_if end_if end_if end_if dll_on kgf$ END_SUB
' INTERFACE UTILISATEUR SUB Gui() border_hide 0 height 0,240 width 0,500 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 color 0,200,200,200 on_key_down 0,close
if file_exists(fond$)=1 picture Fd% height Fd%,height(0) width Fd%,width(0) color Fd%,0,200,0 file_load Fd%,"fond.jpg" end_if edit ProjectName% top ProjectName%,40 left ProjectName%,20 width ProjectName%,width(0)-80 color ProjectName%,240,240,180 font_name ProjectName%,"Arial" : font_size ProjectName%,8 : font_bold ProjectName% font_color ProjectName%,150,150,150 text ProjectName%,"Url de l' exécutable *.exe" on_change ProjectName%,change button ButExe% top ButExe%,40 left ButExe%,width(0)-50 height ButExe%,20 width ButExe%,20 caption ButExe%,".../..." cursor_point ButExe% on_click ButExe%,clic edit ProjectIco% top ProjectIco%,80 left ProjectIco%,20 width ProjectIco%,width(0)-80 color ProjectIco%,240,240,180 font_name ProjectIco%,"Arial" : font_size ProjectIco%,8 : font_bold ProjectIco% font_color ProjectIco%,150,150,150 text ProjectIco%,"Url de la nouvelle icône *.ico" on_change ProjectIco%,change button ButIco% top ButIco%,80 left ButIco%,width(0)-50 height ButIco%,20 width ButIco%,20 caption ButIco%,".../..." cursor_point ButIco% on_click ButIco%,clic picture Preview% top Preview%,120 left Preview%,20 height Preview%,100 width Preview%,100 button ButCreate% inactive ButCreate% top ButCreate%,height(0)-65 left ButCreate%,width(0)-90 caption ButCreate%,"Changer" font_bold ButCreate% cursor_point ButCreate% on_click ButCreate%,clic button ButQuit% top ButQuit%,height(0)-35 left ButQuit%,width(0)-90 caption ButQuit%,"Quitter" font_bold ButQuit% cursor_point ButQuit% on_click ButQuit%,clic END_SUB
' MENUS Close: if scancode =27 : Quitter() : end_if return
Change: change% = number_change if change% = ProjectName% :Modify_font(ProjectName% ): end_if if change% = ProjectIco% :Modify_font(ProjectIco% ) : end_if return
Clic: clic% = number_click if clic% = ButExe% : Search_File("*.exe"):end_if if clic% = ButIco% : Search_File("*.ico"):end_if if clic% = ButCreate% inactive ButExe% inactive ButIco% inactive ButCreate% inactive ButQuit% CreateBat() Exprog("Cmd.exe /c "+FichierBat$+".bat") Initialise() active ButExe% active ButIco% active ButCreate% active ButQuit% 2d_target_is Preview% CLS end_if if clic% = ButQuit% : Quitter() :end_if return
' FONCTIONS
SUB Modify_font(n% ) if left$(text$(n%),3)<>"Url" font_name n%,"Arial" font_size n%,8 font_bold n% font_color n%,0,0,150 else font_name n%,"Arial" font_size n%,8 font_bold n% font_color n%,150,150,150 end_if END_SUB
SUB Search_File(f$) dim_local res%
Open_dialog OpenDial% filter OpenDial%,f$+"|"+f$ if f$="*.exe" Dir_dialog OpenDial%,":\" else if file_exists(Text$(ProjectName%))=1 Dir_dialog OpenDial%,file_extract_path$(text$(ProjectName%)) else message "Sélectionnez un executable !" delete OpenDial% exit_sub end_if end_if Retour$=file_name$(OpenDial%) if Retour$<>"_" if f$="*.exe" text ProjectName%,Retour$ dossierExe$=file_extract_path$(Retour$) FichierExe$=file_extract_name$(Retour$) else text ProjectIco%,Retour$ dossierIco$=file_extract_path$(Retour$) FichierIco$=file_extract_name$(Retour$) res% = dll_call1("LoadAnyImageFile",adr(Retour$)) clipboard_paste Preview% stretch_on Preview% display active ButCreate% end_if else if f$="*.exe" text ProjectName%,"Url de l' exécutable *.exe" dossierExe$="" FichierExe$="" else text ProjectIco%,"Url de l' icône *.ico" dossierIco$="" FichierIco$="" 2d_target_is Preview% CLS inactive ButCreate% end_if end_if delete OpenDIal% END_SUB
SUB CreateBat() ext$=file_extract_extension$(FichierExe$) FichierExe$=left$(FichierExe$,len(FichierExe$)-len(ext$))
file_open_write Fow%,dossierExe$+FichierExe$+".scp" file_writeln Fow%,"//Ce script change l'icon" file_writeln Fow%,"" file_writeln Fow%," [FILENAMES]" file_writeln Fow%," Exe= "+dossierExe$+FichierExe$+".exe" file_writeln Fow%," SaveAs= "+dossierExe$+FichierExe$+"_Nouveau.exe" file_writeln Fow%,"" file_writeln Fow%," [COMMANDS]" file_writeln Fow%," -addoverwrite "+dossierIco$+FichierIco$+", ICONGROUP,MAINICON,0" file_close Fow%
' ***************creation du script .bat*************** FichierBat$=FichierExe$ file_open_write Fow%,dossierExe$+FichierBat$+".bat" file_writeln Fow%," "+a$+rhacker$+a$+" -script "+a$+dossierExe$+FichierBat$+".scp"+a$ file_close Fow% END_SUB
SUB Exprog(pr$) ' Exécution d'un programme externe sans la fenêtre noire Ms-DOS ' - exemple: Exprog("Cmd.exe /c DIR C:\UTIL >C:\TEMP\Dir.txt") DIM_LOCAL scr$, qu$: scr$ = "C:\TEMP\Vbscript.vbs": qu$ = CHR$(34) FILE_OPEN_WRITE 9, scr$: ' <===== Création du script .vbs ===== FILE_WRITELN 9, "CreateObject("+qu$+"Wscript.Shell"+qu$+").Run "+qu$+pr$+qu$+",0,True" FILE_CLOSE 9 EXECUTE_WAIT "WSCRIPT.exe "+scr$: ' <===== Exécution du script ===== FILE_DELETE scr$ file_delete dossierExe$+FichierExe$+".scp" file_delete dossierExe$+FichierBat$+".bat" END_SUB
SUB Initialise() Retour$ ="" FichierExe$ ="" ext$ ="" FichierIco$ ="" dossierExe$ ="" dossierIco$ ="" FichierBat$ ="" retour=0 text ProjectName%,"Url de l' exécutable *.exe" text ProjectIco%,"Url de la nouvelle icône *.ico" END_SUB
SUB New_Url_Rhacker() dim_local r$ if message_input("URL de Reshacker.exe","URL : ","")=1 file_open_write fow%,param$ r$=message_text$ file_writeln fow%,r$ rhacker$ = r$ file_close fow% end_if END_SUB
SUB Quitter() dim_local res% res% = dll_call1("KillProcessByHandle",handle(0)) END_SUB | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 30 Mai 2015 - 6:32 | |
| @ Pascal 10000, Je pense que ton problème vient de l' icône. certaines sont en fait des "bibliothèques", elles contiennent plusieurs formats et plusieurs résolution 16 couleurs, 256 couleurs, 16x16,24x24,48x48,256x256 et là cela devient le souk. Essaies d' ouvrir ton icone dans un editeur d' icônes et gardes une seule image. Je vais ajouter une icone dans le zip, et essaies avec celle là, elle n' a rien à voir avec les dames mais elle t' éclairera peut être. J' ai mis à jour le zip avec une icône en bonus... | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 7:09 | |
| ygeronimi
bjr! personnellement je reste dans ma façon la plus classique pour programmer ainsi que pour son résulta finale. je n'aime pas trop des programmes avec un thème je trouve pas ça professionnelle. maintenant à chacun son gout sinon c 'est bien! | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 9:10 | |
| ps l'icône que j'utilise est unique et n'est une bibliothèque je pense que c'est au niveau des assignation des dossiers même en configurant le dossier par défaut avec "dir_change" | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 9:37 | |
| Quel est le code fini opérationnel svp ?
@Klaus, j'ai toujours "Resource Hacker" que tu m'avez conseillé et je l'utilise toujours, merci | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 12:34 | |
| - pascal10000 a écrit:
- la commande "execute_wait" na pas l'air de vouloir
lancer le fichier '.bat' comme il faut donc si une personne trouve la solution qu'il le poste Bonjour, tu as essayé celle-ci ? UTILS.DLL -> http://nardo26.lescigales.org/divers-dll-28.htmlSi cela fonctionne et que tu as besoin d'une dll qui regroupe les fct utilisées par ton prog, fait moi signe... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 12:50 | |
| @Pascal10000: Ok, maintenant, je vois mieux ce qui se passe. Tu as posté l'image, et ainsi, avec le code que tu as posté, j'ai pu faire des essais.
J'ai pu reproduire le même problème. Et j'ai creusé l'affaire un peu plus. Resultat: la version Delphi que j'utilise pour KGF.dll (Delphi 6 Personal Edition) ne sait gérer que les lcônes de 16 ou 32 pixels. Et donc, ton icône de 48 bits sera tronquée automatiquement à 32 pixels, ce qui donne les deux tiers du haut à gauche. Normal.
Par contre, si tu transforme ton fichier ICO en JPG, GIF ou PNG, ça marche parfaitement.
Désolé de ne pas avoir pu apporter une meilleure solution. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 12:57 | |
| - Klaus a écrit:
[...] la version Delphi que j'utilise pour KGF.dll (Delphi 6 Personal Edition) ne sait gérer que les lcônes de 16 ou 32 pixels. Bonjour Klaus, Si tu veux j'ai la version 7, je peux te la passer... (Je met un lien du fichier d'install dans un dossier de ma freebox et tu peux la télécharger) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 13:08 | |
| Merci, Nardo26. Je l'ai téléchargé aussi, mais je ne l'ai pas mis en place, car il fait choisir: V6 ou V7. Les deux ne peuvent pas cohabiter. Et cela m'ennuie: il y a actuellement plusieurs centaines de milliers de lignes en Delphi 6, et je crains la migration vers une autre version. Sans compter les différents composants tiers que j'ai installés dans ma version D6, comme Synedit pour ne nommer que celui-là. Si c'est juste pour un format d'icône, je pense que l'effort dépasse l'enjeu. Actuellement, je gère quand-même les formats BMP, JPG, WMF, EMF, GIF, PNG ou TIF sans restriction, et ICO en 16 ou 32 pixels. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 13:13 | |
| Tu as essayé de passer par une machine virtuelle ? (Ça permet de dégrossir les choses)
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 13:20 | |
| Ouais... c'est une façon de faire... J'ai WMWarePlayer, avec des images de différents systèmes. Mais sauf impératif technique, je n'ai pas envie d'installer ma dizaine de composants spécifiques dans un autre Delphi, puis transférer l'ensemble de KGF.dll et tout retester... un boulot énorme. Pour le moment, je préfère avancer sur les 3 aspects en cours: - copie aller/retour des données d'une bitmap dans un tableau bi-dimensionnel Panoramic - compléter la doc des fonctions de pilotage Excel/OpenCalc - gestion des collisions de sprites avec tunes (zones sensibles différenciées dans un sprite) Ca m'occupe pleinement... | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| | | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 13:43 | |
| Nardo26 dsl ta librairie n'arrange pas le problème toujours pareil - Code:
-
dim FichierExe$,ext$,FichierIco$,dossierExe$,dossierIco$,FichierBat$,DossierTemp$ dim retour dim a$,rhacker$,batch$ a$=" rhacker$="C:\Program Files\Resource Hacker\ResHacker.exe" label creer
dir_change "C:\Program Files\GetIcon\Temp" DossierTemp$=dir_current$+"\"
DLL_ON "form.dll" retour = DLL_CALL2("SetSize",HANDLE(0),0) WIDTH 0,WIDTH(0)+1 : ' obligatoire pour "forcer" le rafraichissement de l'affichage du formulaire retour = DLL_CALL2("SetMinimize",HANDLE( 0),0) retour = DLL_CALL2("SetMaximize",HANDLE( 0),0) dll_off
dll_on "utils.dll"
caption 0,"GetIcon" height 0,300 : width 0,600
Button 10 : caption 10,"Creer" left 10,15 : top 10,220 on_click 10,creer
container 20 top 20,50 : Left 20,20 height 20,40 : width 20,160 Caption 20," Executable "
alpha 21 parent 21,20 : color 21,255,255,255 full_space 21 font_size 21,10
container 30 top 30,50 : Left 30,width(20)+50 height 30,40 : width 30,160 Caption 30," Icon "
alpha 31 parent 31,30 : color 31,255,255,255 full_space 31 font_size 31,10
alpha 32 : caption 32,"" top 32,30 : left 32,20
alpha 33 : caption 33,"" top 33,30 : left 33,width(20)+50
alpha 34 : caption 34,"" top 34,110 : left 34,30
container 40 top 40,20 : Left 40,380 height 40,200 : width 40,202 Caption 40," Apperçu "
scene2d 41 height 41,180 : top 41,20 parent 41,40
open_dialog 50 filter 50,"Executable | *.exe" open_dialog 51 filter 51,"Icon | *.ico"
end
creer: ' ************Sélection des fichiers!************* caption 21,"" caption 31,"" caption 32,"" caption 33,"" caption 34,"" ext$="" FichierExe$="" FichierIco$="" dossierExe$="" dossierIco$="" FichierBat$=""
' ***********Executable*************************** dossierExe$=file_name$(50) if dossierExe$="_" then return
FichierExe$=file_extract_name$(dossierExe$) caption 21,FichierExe$
dossierExe$=file_extract_path$(dossierExe$) caption 32,dossierExe$
' ***********Icône*************************** dossierIco$=file_name$(51) if dossierIco$="_" then return
FichierIco$=file_extract_name$(dossierIco$) caption 31,FichierIco$
dossierIco$=file_extract_path$(dossierIco$) caption 33,dossierIco$
' ******************************************* if dossierIco$<>dossierExe$ Message "L'icône doit être du même dossier" caption 21,"" caption 31,"" caption 32,"" caption 33,"" caption 34,"" ext$="" FichierExe$="" FichierIco$="" dossierExe$="" dossierIco$="" FichierBat$="" return end_if
inactive 10
' ***************creation du script*************** ext$=file_extract_extension$(FichierExe$) FichierExe$=left$(FichierExe$,len(FichierExe$)-len(ext$))
file_open_write 1,DossierTemp$+FichierExe$+".scp" file_writeln 1,"//Ce script change l'icon" file_writeln 1,"" file_writeln 1," [FILENAMES]" file_writeln 1," Exe= "+dossierExe$+FichierExe$+".exe" file_writeln 1," SaveAs= "+dossierExe$+FichierExe$+"_Nouveau.exe" file_writeln 1,"" file_writeln 1," [COMMANDS]" file_writeln 1," -addoverwrite "+dossierIco$+FichierIco$+", ICONGROUP,MAINICON,0" file_close 1
' ***************creation du script .bat*************** FichierBat$=FichierExe$ file_open_write 2,DossierTemp$+FichierBat$+".bat" file_writeln 2," "+a$+rhacker$+a$+" -script "+a$+DossierTemp$+FichierBat$+".scp"+a$ file_close 2
batch$ = DossierTemp$+FichierBat$ retour = DLL_CALL1("Execute", ADR(batch$)) if file_exists(dossierExe$+FichierExe$+"_Nouveau.exe")=1 then caption 34,"OK Fichier Créé"
file_delete DossierTemp$+FichierExe$+".scp" file_delete DossierTemp$+FichierBat$+".bat" active 10 return j'ai remis la source avec quelque modification klaus en mettant une image à la place d'un icône au programme n'y aura t' il pas un problème! c'est pas tellement prévu pour !!!!!! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 13:56 | |
| Ben... dans le code que tu as posté, tu essaies de charger l'icône dans un objet PICTURE de Panoramic. Et là, ça marche parfaitement - j'ai essayé.
L'icône d'un programme ou d'une application, c'est autre chose. Le programme Panoramic n'a aucune influence que son icône. Tu peux la changer par ResHacker, certes, mais elle est censée s'afficher dans le coun en haut à gauche de la fenêtre, et éventuellement dans le dossier où se trouve l'EXE, dans la fenêtre de l'explorateur de fichiers. C'est Windows qui s'en charge. Mais Panoramic étant lui-même réalisé pour l'essentiel en Delphi 6, je vois mal comment une icône de 48x48 pixels pourrait s'afficher correctement, ailleurs que dans la fenêtre de l'explorateur des fichiers. De toutes façons, l'icône affichée dans la barre de titre d'un programme ne doit pas dépasser 16x16 pixels. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: changer vos icone panoramic Sam 30 Mai 2015 - 14:48 | |
| Ton programme fonctionne bien avec mes dll : il faut juste que tu rajoutes l'extension .bat dans la variable batch$ avant l'appel à execute J'ai rajouté quelques controles. (il en manque encore) - Code:
-
dim FichierExe$,ext$,FichierIco$,dossierExe$,dossierIco$,FichierBat$,DossierTemp$ dim retour dim a$,rhacker$,batch$ dim curDir$: curDir$=dir_current$ DIM TmpDir$:TmpDir$="C:\GestIcon.tmp" a$=" rhacker$="C:\Program Files\Resource Hacker\ResHacker.exe" label creer
IF DIR_EXISTS(TmpDir$)=0 DIR_MAKE TmpDir$ DIM DirRemove% END_IF
DossierTemp$= TmpDir$+""
' dir_change "C:\Program Files\GetIcon\Temp"
DLL_ON "form.dll" retour = DLL_CALL2("SetSize",HANDLE(0),0) WIDTH 0,WIDTH(0)+1 : ' obligatoire pour "forcer" le rafraichissement de l'affichage du formulaire retour = DLL_CALL2("SetMinimize",HANDLE( 0),0) retour = DLL_CALL2("SetMaximize",HANDLE( 0),0) dll_off
dll_on "utils.dll"
caption 0,"GetIcon" height 0,300 : width 0,600
Button 10 : caption 10,"Creer" left 10,15 : top 10,220 on_click 10,creer
container 20 top 20,50 : Left 20,20 height 20,40 : width 20,160 Caption 20," Executable "
alpha 21 parent 21,20 : color 21,255,255,255 full_space 21 font_size 21,10
container 30 top 30,50 : Left 30,width(20)+50 height 30,40 : width 30,160 Caption 30," Icon "
alpha 31 parent 31,30 : color 31,255,255,255 full_space 31 font_size 31,10
alpha 32 : caption 32,"" top 32,30 : left 32,20
alpha 33 : caption 33,"" top 33,30 : left 33,width(20)+50
alpha 34 : caption 34,"" top 34,110 : left 34,30
container 40 top 40,20 : Left 40,380 height 40,200 : width 40,202 Caption 40," Apperçu "
scene2d 41 height 41,180 : top 41,20 parent 41,40
open_dialog 50 filter 50,"Executable | *.exe" open_dialog 51 filter 51,"Icon | *.ico"
label finProg : ON_CLOSE 0,finProg
end
finProg: DLL_OFF if VARIABLE("DirRemove%")=1 DIR_REMOVE TmpDir$ END_IF
return
creer:
IF FILE_EXISTS(rhacker$)<>1 MESSAGE "Selectionnez l'executable ResHacker" filter 50,"ResHacker.exe" rhacker$=file_name$(50) if rhacker$="_" then return END_IF filter 50,"Executable | *.exe" ' ************Sélection des fichiers!************* caption 21,"" caption 31,"" caption 32,"" caption 33,"" caption 34,"" ext$="" FichierExe$="" FichierIco$="" dossierExe$="" dossierIco$="" FichierBat$=""
' ***********Executable*************************** MESSAGE "Selectionnez l'executable a modifier" dossierExe$=file_name$(50) if dossierExe$="_" then return
FichierExe$=file_extract_name$(dossierExe$) dossierExe$=file_extract_path$(dossierExe$)
caption 21,FichierExe$ caption 32,dossierExe$
' ***********Icône*************************** dossierIco$=file_name$(51) if dossierIco$="_" then return
FichierIco$=file_extract_name$(dossierIco$) caption 31,FichierIco$
dossierIco$=file_extract_path$(dossierIco$) caption 33,dossierIco$
' ******************************************* if dossierIco$<>dossierExe$ Message "L'icône doit être du même dossier" caption 21,"" caption 31,"" caption 32,"" caption 33,"" caption 34,"" ext$="" FichierExe$="" FichierIco$="" dossierExe$="" dossierIco$="" FichierBat$="" return end_if
inactive 10
' ***************creation du script*************** ext$=file_extract_extension$(FichierExe$) FichierExe$=left$(FichierExe$,len(FichierExe$)-len(ext$)) file_open_write 1,DossierTemp$+FichierExe$+".scp" file_writeln 1,"//Ce script change l'icon" file_writeln 1,"" file_writeln 1," [FILENAMES]" file_writeln 1," Exe= "+dossierExe$+FichierExe$+".exe" file_writeln 1," SaveAs= "+dossierExe$+FichierExe$+"_Nouveau.exe" file_writeln 1,"" file_writeln 1," [COMMANDS]" file_writeln 1," -addoverwrite "+dossierIco$+FichierIco$+", ICONGROUP,MAINICON,0" file_close 1
' ***************creation du script .bat*************** FichierBat$=FichierExe$ file_open_write 2,DossierTemp$+FichierBat$+".bat" file_writeln 2," "+a$+rhacker$+a$+" -script "+a$+DossierTemp$+FichierBat$+".scp"+a$ file_close 2
batch$ = DossierTemp$+FichierBat$+".bat" : ' DEBUG NARDO : il manquait l'extension .bat retour = DLL_CALL1("Execute", ADR(batch$)) if file_exists(dossierExe$+FichierExe$+"_Nouveau.exe")=1 then caption 34,"OK Fichier Créé"
file_delete DossierTemp$+FichierExe$+".scp" file_delete DossierTemp$+FichierBat$+".bat" active 10 return L'objet 51 n'est pas nécessaire : il te suffit de modifier le filter du 50 pour pouvoir sélectionner l’icône... Utilise ExecuteAndWait (car tu risque de virer les scripts avant que ceux-ci soient executé) | |
| | | Contenu sponsorisé
| Sujet: Re: changer vos icone panoramic | |
| |
| | | | changer vos icone panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |