Hallo Bummi,
analog zum Laden aus einer Icon Datei, kannst du folgendes machen, um z.b. das Icon deiner eigenen EXE zu laden:
ir.LoadFromResource(hInstance, 'MAINICON');
Wenn du Icons aus externen
PE Dateien extrahieren willst, kannst du wie folgt vorgehen:
Delphi-Quellcode:
var
hModule: THandle;
begin
hModule := LoadLibraryEx('ExterneExeDatei.exe', 0, LOAD_LIBRARY_AS_DATAFILE);
if (hModule <> 0) and (hModule <> INVALID_HANDLE_VALUE) then
try
ir.LoadResource(hModule, 'ICONRESOURCENAME');
finally
FreeLibrary(hModule);
end;
end;
Beim Speichern eines Icons in eine
PE Datei funktioniert es etwas anders. Dort muss zum einen der Icon Header als RT_GROUPICON Resource angelegt werden und die Einzelbilder dann jeweils als eigene RT_ICON Resource. Deshalb übernimmt die SaveToResource() Funktion in diesem Falle den Dateinamen der Zieldatei als Parameter.
ir.SaveToResource('ExterneExeDatei.exe', 'ICONRESOURCENAME');
Wenn deine Zieldatei mehrere Icons besitzt könnte meine Methode allerdings teilweise die Einzelbilder überschreiben. Dafür habe ich bisher noch keinen Check eingebaut