Icon in Exe-Dateien
- Sauer-RAM
- Beiträge: 326
- Registriert: 13.04.2009 16:22
- Computerausstattung: Lenovo ThinkPad X230t Convertible
- Wohnort: Haslach i. K.
Icon in Exe-Dateien
Erstmal ein frohes Fest euch allen ^^! Und dann gleich mal zu meiner Frage:
Wo werden Die Icons ind Exe-Dateien abgespeichert?
Ich hab in der Boardsuche nichts gefunden, bei Google nichts gefunden und mit einer manuellen Suche einer Exe via HEX-Editor wurde ich wie erwartet leider auch nicht fündig. Ich hoffe ihr könnt mir helfen.
Danke schonmal für die Antworten
Wo werden Die Icons ind Exe-Dateien abgespeichert?
Ich hab in der Boardsuche nichts gefunden, bei Google nichts gefunden und mit einer manuellen Suche einer Exe via HEX-Editor wurde ich wie erwartet leider auch nicht fündig. Ich hoffe ihr könnt mir helfen.
Danke schonmal für die Antworten
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Icon in Exe-Dateien
Entweder in einer DataSection oder als Resource (Windows-Standard).
Guck Dir die Exe z.B. mit dem Resource Hacker an: http://www.angusj.com/resourcehacker/
PS: Deine Signatur ist grösser als Dein Beitrag
Guck Dir die Exe z.B. mit dem Resource Hacker an: http://www.angusj.com/resourcehacker/
PS: Deine Signatur ist grösser als Dein Beitrag
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Sauer-RAM
- Beiträge: 326
- Registriert: 13.04.2009 16:22
- Computerausstattung: Lenovo ThinkPad X230t Convertible
- Wohnort: Haslach i. K.
Re: Icon in Exe-Dateien
Ok vielen Dank. Das mit der Signatur werd ich nachher noch ändern. Ich poste mein Ergebniss wenn ichs hab ^^
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
- Sauer-RAM
- Beiträge: 326
- Registriert: 13.04.2009 16:22
- Computerausstattung: Lenovo ThinkPad X230t Convertible
- Wohnort: Haslach i. K.
Re: Icon in Exe-Dateien
Also mit Resource Hacker find ich zwar ein Icon und kann das auch ändern, ich würde das aber nur gern selbst schreiben. Bei Resource Hacker sehe ich leider nicht wo das Icon in der Datei ist. gibt es da irgendwelche markierungen in der Exe wo das Icon anfängt und wieder aufhört?
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Icon in Exe-Dateien
Da haste Dir ja was vorgenommen
Reicht nicht ExtractIcon_ oder LoadIcon_ ?
Da ich jetzt auch nicht weiß, was Du genau vorhast, ausser das es anders geht, als Du es Dir
gerade ausgemalt hast, hier eine Übersicht der relevanten APIs:
Resource Functions (Windows)
Reicht nicht ExtractIcon_ oder LoadIcon_ ?
Da ich jetzt auch nicht weiß, was Du genau vorhast, ausser das es anders geht, als Du es Dir
gerade ausgemalt hast, hier eine Übersicht der relevanten APIs:
Resource Functions (Windows)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Sauer-RAM
- Beiträge: 326
- Registriert: 13.04.2009 16:22
- Computerausstattung: Lenovo ThinkPad X230t Convertible
- Wohnort: Haslach i. K.
Re: Icon in Exe-Dateien
Vielen Dank, ExtractIcon_ War was ich suchte. Ich wusste nicht, dass es einen API Befehl für sowas gibt ^^. Hab ihn in der API Library übersehen. Gibt es auch einen Befehl um ein Icon auszutauschen? Ich möchte ein Programm schreiben, welches die Icons von Programmen ändern kann. z.B. Bekommt meine zusätzliche Firewall das Icon der Standart Firewall.
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Re: Icon in Exe-Dateien
Ich hab den folgenden Code zwar nicht getestet, aber ich habe mit Hilfe von Suchbegriffen wie "UpdateResource" oder "change icon" gefunden: http://www.purebasic.fr/english/viewtopic.php?t=14019
Der alte Code aus dem Jahre 2005 muss natürlich an die neuste PB-Version angepasst werden. Sollte aber kein Problem sein.
Der alte Code aus dem Jahre 2005 muss natürlich an die neuste PB-Version angepasst werden. Sollte aber kein Problem sein.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Icon in Exe-Dateien
Das ganze wird wohl nicht so einfach gehen. Aber der link von RSBasic ist schon mal ein guter Anfang.
Der tauscht aber nur das erste Icon aus und nur wenn es ein einzelnes Icon ist. Das ist heutzutage
eher die Ausnahme, wirst Du ja sehen, was geht.
Wichtig ist, die Exe darf nicht geöffnet sein und sollte sich nicht in einem geschütztem Verzeichnis
befinden. Probleme mit AV-Programmen wirst Du evtl. auch haben.
Aber Versuch macht klug. Wenns klappt, dann kannst Du es hier ja posten.
Der tauscht aber nur das erste Icon aus und nur wenn es ein einzelnes Icon ist. Das ist heutzutage
eher die Ausnahme, wirst Du ja sehen, was geht.
Wichtig ist, die Exe darf nicht geöffnet sein und sollte sich nicht in einem geschütztem Verzeichnis
befinden. Probleme mit AV-Programmen wirst Du evtl. auch haben.
Aber Versuch macht klug. Wenns klappt, dann kannst Du es hier ja posten.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Sauer-RAM
- Beiträge: 326
- Registriert: 13.04.2009 16:22
- Computerausstattung: Lenovo ThinkPad X230t Convertible
- Wohnort: Haslach i. K.
Re: Icon in Exe-Dateien
Vielen Dank für den Link, aber ich muss sage: "Hä?
"
Ohje, Ohje... Ich hab noch nie mit Strukturen gearbeitet. Ich verstehe leider die Teile auf die es ankommt nicht. Hab jetzt mal versucht was zusammen zumurksen
läuft aber natürlich nicht. Ich lese mich jetzt mal in die Strukturen ein.
Ohje, Ohje... Ich hab noch nie mit Strukturen gearbeitet. Ich verstehe leider die Teile auf die es ankommt nicht. Hab jetzt mal versucht was zusammen zumurksen
Code: Alles auswählen
#RT_GROUP_ICON = #RT_ICON + 11
IconFile.s = "Pfad zur Quell-Exe"
ExeFile.s = "Pfad zu zu ändernden Exe"
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ImageGadget(1,10,10,32,32,0,0)
SetGadgetState(1,ExtractIcon_(GetModuleHandle_(0),IconFile,0))
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
*icon = AllocateMemory(10000)
icon = ExtractIcon_(GetModuleHandle_(0),IconFile,0)
hlnst = BeginUpdateResource_(ExeFile, #False)
If hlnst
UpdateResource_(hlnst,#RT_GROUP_ICON, 1, #LANG_NEUTRAL,*icon,SizeOf(*icon))
UpdateResource_(hlnst,#RT_ICON, 1, #LANG_NEUTRAL,*icon,SizeOf(*icon))
EndUpdateResource_(hlnst,#False)
Else
MessageRequester("Error","Konnte Update nicht beginnen.")
EndIf
EndIf"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein

