Seite 1 von 1
User soll Icon für .exe selber wählen können
Verfasst: 12.01.2007 22:29
von Delle
Hallo,
mit einem Tool soll ein User ein weiteres (eigenes) Tool erstellen können und hierzu auch ein eigenes Icon verwenden dürfen.
In dem Tool ist also eine fertige .exe angehängt, was abgesplittet und als .exe gespeichert wird. Da werden dann noch paar Daten drangehangen und der User soll eben für diese .exe das Icon selber wählen können.
Wie macht man sowas?
Verfasst: 12.01.2007 22:48
von ZeHa
Du könntest Dich ein wenig drüber schlau machen und vielleicht rausfinden, ob das Icon immer an der gleichen Stelle der EXE gespeichert wird. Gut möglich, daß das so ist, kann aber auch sein, daß die Stelle variiert. Dennoch gibt es einen Header für die EXE (wotsit.org nachschlagen), und wenn Du den ausliest, kriegst Du auf jeden Fall die Stelle raus, wo das Icon zu finden ist.
Ich vermute aber eher, daß es immer an der gleichen Stelle ist, sonst müßte Windows ja bei jeder EXE, die es anzeigt, extra den Header auslesen um das Icon zu finden.
Es gibt ein Tool namens ResourceHacker, damit kann man Icons aus bestehenden EXEn austauschen. Hier ist jede Ressource irgendwie durchnumeriert. Vielleicht hilft Dir das weiter, evtl. gibt es einen SourceCode des Programms.
Verfasst: 29.04.2007 20:33
von Kekskiller
Die Icons werden als Ressource abgespeichert, normalerweise ist die Icon-Ressource mit Nr. 0 das Icon, welches im Explorer angezeigt wird, es gibt natürlich noch mehr Icons, aber die werden auch nur im "Icon auswählen"-Dialog angezeigt. Man findet auf
http://www.wotsit.org/ sehr schnell ein aufschlussreiches Dokument über den Aufbau -> "WINHDR.TXT".
Verfasst: 29.04.2007 20:48
von Thorium
ZeHa hat geschrieben:
Ich vermute aber eher, daß es immer an der gleichen Stelle ist, sonst müßte Windows ja bei jeder EXE, die es anzeigt, extra den Header auslesen um das Icon zu finden.
In der Tat liest Windows immer die Header aus um das Icon zu ermitteln. Ich hab mich auch mal ein bischen mit dem PE-Format (NT .exe) beschäftigt. Aber das ist garnichtmal so unkompliziert. Allerdings durchaus machbar das Icon auszutauschen.
Verfasst: 29.04.2007 21:10
von ts-soft
Folgende 3 API-Aufrufe werden benötigt:
BeginUpdateResource
UpdateResource
EndUpdateResource
Unter NT als Unicode verfügbar, unter Win9x wird "Unicows.dll" benötigt.
Beispiel mit Manifest statt Icon im CodeArchiv, restlichen Infos sollte man
dem PSDK entnehmen können.