Einzelnen Beitrag anzeigen

SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#2

AW: Icon anderer EXE Datei ändern

  Alt 14. Dez 2015, 18:38
Zuerst mal solltest du nicht LoadLibrary benutzen, denn wenn "lzResDataFile" eine DLL ist, wird deren DllMain-Routine ausgeführt, was unbeabsichtigte Folgen haben könnte!

Wenn man nur an den Ressourcen einer EXE/DLL interessiert ist, und keinen Code davon aufrufen will, dann sollte man immer LoadLibraryEx benutzen, mit dem Flag LOAD_LIBRARY_AS_DATAFILE: hLib := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE); Außerdem solltest du PChar für diese String-Casts benutzen, nicht PWideChar, damit der Code sowohl in älteren (Ansi) als auch neueren (Unicode) Versionen von Delphi läuft.


Wie prüfst du, ob das Ersetzen des Symbols geklappt hat? Öffnest du die modifizierte Datei mit einem Ressourceneditor, oder schaust du einfach nur im Explorer/Desktop nach, ob das Symbol sich ändert? Falls letzteres: Windows hat einen Icon-Cache, es könnte also sein, dass das Symbol in der Datei geändert wurde, aber Windows durch den Cache immer noch das alte anzeigt.

Geändert von SMO (14. Dez 2015 um 18:40 Uhr)
  Mit Zitat antworten Zitat