Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Laden und Speichern von Icons (Icon Parser, für Icon Dateien oder Resourcen)

  Alt 28. Sep 2012, 14:26
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat