Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Icon einer exe austauschen

  Alt 3. Feb 2004, 12:47
Hi,

beim Ico.SaveToStream kommt nicht nur die reine Icon im Stream raus, sondern gleich ein ganzer 1 Icon großer Icon-File!

...und Icon-Files sind so aufgebaut, dass sie normalerweise mehrere Icons gleichzeitig beinhalten können. Demzufolge haben sie also auch einen Daten-Head (indem u.a. auch die Anzahl der Icons pro aktuellem File festgehalten ist). Ferner kommt danach pro Icon nochmal ein extra Datensatz, indem bestimmte Infos über eine jeweilige Icon selbst angesiedelt sind. Lange Rede kurzer Sinn: Diese eigentlichen File-Daten haben in der Resource nachher natürlich nichts zu suchen. Du solltest also zuerst ermitteln, wo deine Icon im Stream tatsächlich steht (das ist nach SaveToStream --> immer nur ein 1 Icon großer Icon-File --> Offset:=22), dann Pointer drauf und die Längenangabe entsprechend modifizieren.

Außerdem scheinen mir auch deine Parameter für die UpdateResource-Funktion noch nicht so ganz zu stimmen. Hier mal ein funktionierendes Code-Beispiel, bei dem z.B. auch diese Parameter ok sind.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat