Nachdem ich mich nunmehr 4 Tage mit dem Mist gequält habe, dürft ihr nun auch mal.

Was ich brauche
Ich suche einen Weg, alle Icons aus einem Executable ALS ICONS zu extrahieren in einen Speicherbereich, also so, dass ich die Sachen mit WriteData in ne Datei schreiben kann.
Was mir vorschwebt ist eine Funktion für PB4.0, die etwa so aussieht
Code: Alles auswählen
LoadIcons(exe.s,Liste.l())
Die Speicherbereiche sollen dabei jeweils folgendes enthalten:
-Die Größe des Speicherbereichs in Byte.( als LongWert, als 4 Byte)
-BITMAPINFOHEADER ; Da stehen höhe, breite, all so´n brams drin
-Die Farbpalette mit 256 Farben : 1024 Byte also
-Die FarbIndizees; Halt die Nr, welche der 256 Farben genutzt wird.
-Die Transparenzindizees; Wenn Vorhanden
Bis auf die Größe des Speicherbereichs steht im Exe-File alles direkt hinternander, das heißt, wenn ihr rausfindet, wo es steht, könnt ihr einfach einmal mit CopyMemory arbeiten.
Warum mach ich´s nicht selbst?
Um ganz ehrlich zu sein: Ich habe keine Lust

Wie für die meisten hier is auch für mich Programmieren ein Hobby (noch). Und Hobbys sollen Spass machen. Es macht mir Spass, eigene Algorithmen zu entwickeln, oder Große Konzepte für Programme zu machen. Ich finde es aber nervtötend, mich dahinter zu klemmen, wie irgend eine Exe-Datei aufgebaut ist und mich mit ungenauen Erklärungen herum zu schlagen, zumal die oft in HochEnglisch und mit Bezeichnungen, die ich nicht verstehe versehen sind (0Ch gibt angeblich eine Stelle in einer Datei zurück, nur welche???).
Ich hoffe aber jetzt ganz einfach mal, dass es Leute gibt, die sowas gerne machen (sonst gäbs ja auch keine PDF-Lib oder Konvertierer in andere Grafikformate).
Was springt für euch raus?
Da es zuerst einmal um ein Freewareprogramm geht, kann ich euch nur eine Erwähnung im Impressum anbieten.
Sollte das Programm jemals kommerziell werden (ist immerhin ein Programmkonzept, dass ich noch nirgends sonst gesehen habe), gibt´s natürlich auch Kohle, aber wie gesagt, erstmal ist es Freeware.
Ein paar Tips
So, wie ich es bisher verstanden habe, ist in der ExeDatei vermerkt, wo der ResourceTable anfängt. Im ResourceTable wiederrum steht eine Liste von Resourcen, in der Liste wiederrum ist dann vermerkt, wo das Icon anfängt (die Länge des Bereichs denk ich auch, die ist sonst SizeOf(BitmapInfoHeader)+1024+breite*hoehe/8+breite*hoehe etwa, genaue Formel könnter kriegen, falls ihr so weit kommt, dass ihr die braucht)
ExtractIcon_() sowie ExtractIconEx_()(Danke an Freak) habe ich sehrwohl
gefunden, allerdings geben mir beide nur ein Icon (wenn ich als Index 0 angebe, sonst gibt´s garkeins). Kann auch sein, dass das die Icongroup ist, aber da es sich um ein Handle handelt, kann ich scheinbar nix kopieren, mit Copymemory erhalt ich andauernd einen Invalid Memory Access.
Vielen Dank, dass ihr bis hier unten ausgehalten habt und Danke im Vorraus für Eure Hilfe

Mfg Franky