Newsgroup: it.comp.programmare.win32
Titolo: Immagine exe

Salve a tutti....Avrei bisogno di estrarre un' immagine da un file EXE
(l' immagine che si vede nell' icona dell esegibile) e riuscirla a
sostituire con un altra immagine....Qualcuno ha qualche idea?
Grazie in anticipo..Saluti

 perfetto per i lamer o già di lì :-)
Non capisco il perche di questa tua affermazine,se volessi farei molto
prima a compilare il mio programma con l icona desiderata senza tanti
problemi !!!!! 2 non sono un lamer e neanche un hacker o giu di li 3
vorrei solo sapere il meccanismo oppure come fanno i programmi a
estrarre quei tipi di cose,non essendoci una struttura ben definita
(credo).A ncora meglio un esempio in c da vedere il funzionamento passo
passo!!!
GRAZIE

sostituire con un altra immagine....Qualcuno ha qualche idea?
L'icona è contenuta come risorsa.  Guarda su MSDN le funzioni per la
lettura/modifica di risorse in un file eseguibile.

 estrarre quei tipi di cose,non essendoci una struttura ben definita
e qua ti sbagli ;-)
in rete ci sono una miriade articoli ed esempi sul formato degli 
eseguibili di win (PE)
ciao

 assicurarsi una risposta ;-)
Questo non e la mia mail (e mi scuso),ma siccome mi connetto spesso da
scuola, non mi fido ad usare la mia mail, perche di lameroni con
programmi di cui non conoscono nemmeno il vero funzionamento c' e' ne
sono a bizzeffe!Comunque grazie a tutti ora provero a studiarmi un po
le strutture e provare da solo a lavorare con eseguibili.....
Saluti....ricordatevi del 8 marzo che se no sono guai!

 sostituire con un altra immagine....Qualcuno ha qualche idea?
ciao,
se devi solo estrarre l'icona puoi usare una di queste due funzioni:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/icons/iconreference/iconfunctions/extracticon.asp?frame=true
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/icons/iconreference/iconfunctions/extracticonex.asp?frame=true
ma se devi anche cambiarla mi sa che non ne esci viva :D
oltre al formato PE (quello degli eseguibili, che poi è anche lo stesso
delle dll, degli ocx, degli screensaver, e di molti altri files contenenti
codice eseguibile per Windows) devi conoscere anche il formato della
particolare risorsa, in questo caso l'icona.
credo (ma non ne sono sicuro) che Explorer come icona da associare agli
exe scelga la prima che trova tra le risorse, e se non ce ne sono prende
quella predefinita a forma di finestra vuota.
se il tuo scopo è semplicemente cambiare l'icona ad un eseguibile allora è
meglio che usi il programma che ti hanno consigliato (Resource Hacker).
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 sostituire con un altra immagine....Qualcuno ha qualche idea?
L' icona non è altro che una classica risorsa e la estrai molto 
facilmente...
Il problema è sostituirla.
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS 

 
Per l'estrazione
FindResource (più funzioni di contorno)
Per la sostituzione
Guarda UpdateResource (e annessi e connessi).
Ti permette di cambiare le risorse di un eseguibile/libreria.
Penso che l'unico vincolo sia che il file non sia stato bloccato (ergo 
non deve essere in esecuzione e quindi un eseguibile non può cambiare le 
risorse di se stesso)
Su MSDN dovrebbero anche esserci un paio di esempi di estrazione e 
sostituzione di risorse mediante API.
LP

Ok....sono ancora io......intanto ringrazio tutti....
Luca Pascali  , ho seguito il tuo conisiglio e alla fine ....ci sono
riuscita, MA......
Al mio eseguibile se aperto con reshacker vedo che ho agiunto una icona
fra le risorse delle icone,ma non viene visualizata come icona del
programma....ho notato di una risorsa chiamata ICON GROUP puo essere
che va impostata in qualche modo come parametro all interno di essa?
Grazie e saluti


Questo mi risulta strano.
Comunque non ho mai provato da programma a cambiare
Ho scaricato Reshacker, e in questi giorni devo fare un applicativo che 
va appunto a modificare le risorse di un altro file. Posso fare una 
prova anche con le icone.
Comunque, provando su un eseguibile compilato da me, resource hacker mi 
mostra 2 voci per le icone:
"Icon" con gli ordinali 1 e 2 (ho una icona con 2 dimensioni, 32x32 e 
16x16) e un altro come "Icon Group" dove ho come ordinale l'id della 
risorsa (per me 101) e un riepilogo delle icone.
A te come risulta?
LP

 A te come risulta?
Infatti !! resource hacker mi mostra  ICON con le varie icone , e  Icon
Group dove le icone sono elencate con le varie proprieta, per esempio :
32 x 32 (16 colors) - Ordinal name: 102
dove 102 e il nome della risorsa all interno di ICON.Da quel che ho
capito windows utilizza queste informazioni per individuare quali icone
utilizzare secondo il metodo di visualizzazione adottato : - icone
grandi 32 x 32 icone piccole 16 x 16 e diversi colori....
Conosci un modo per copiare direttamente tutte le risorse?e poi
eliminare quelle superflue?che per me e forse il metodo piu
pratico.....

No la mia domanda non va bene...Hai un modo per elencare tutte le id
delle icone che sono contenute nell ICON?

delle icone che sono contenute nell ICON?
EnumResourceTypes ()
Su MSDN c'e' anche un codice d'esempio.

 LP
Come promesso, sto provando la cosa (serve anche a me) e credo di aver 
capito il tipo di problema (me lo ritrovo anch'io).
Sto facendo delle verifiche per capire che cosa non torna.
Quando so qualcosa mi faccio vivo.
LP

 Quando so qualcosa mi faccio vivo.
Ciao,fianalmente ci sono riuscita....proprio come pensavo per poter
visualizzare l'icone, windows va a vedere nella risorsa icongroup a
quale icona corrisponde il formato attualmente usato da windows e poi
lo va a ricercare nelle risorse icon.Mi spiego con un esempio : Se
imposti la visualizzazione di icone, windows va nella cartella
icongroup e ricerca il nome della risorsa (icona) con le proprieta
16x16 per poi caricarla...
Comuque io ho fatto un applicativo che elenca e carica tutte le risorse
e le va a copiare su un altro eseguibile......se ti interessa fammi
sapere 
ciao

 
Ottimo.
Ci provo anch'io, al massimo, se ho problemi, mi faccio sentire.
Per diritto di cronaca, inoltre, segnalo per i posteri una cosa che mi 
ha fatto dannare nelle ultime 4 ore: Modificare le risorse stringa di un 
eseguibile
Per risolvere, googlando, ho trovato questo esempio di Microsoft
http://support.microsoft.com/kb/q196774/
che contiene un file di libreria scritto in C (strblock.c e strblock.h) 
che permette appunto la gestione delle risorse stringa.
E' interessante vedere come, per cambiare una stringa in un file a 
partire da un ID univoco e un ID della lingua, sia necessario passare 
per una decina di funzioni (se non sono una decina, poco ci manca) 
scritte apposta (il software non č ottimizzato per una integrazione, ma 
per un uso standalone come libreria).
Comunque pensavo che per le risorse avessero fatto un lavoro piů lineare 
e strutturato, invece del rebelotto che c'č.
Scusa per lo sfogo.
Ciao Luca