![]() |
Delphi-Version: 7
Icon Changer
Hallo,
würde gerne das Icon einer EXE ändern, wobei das Icon in einem TImage liegt. Das Handle eines Icons einfach mit:
Delphi-Quellcode:
h := ExtractIcon(0,PChar(OpenDialog.FileName),0);
if h <> 0 then begin ImageIcon.Picture.Icon.Handle := h; end;
Delphi-Quellcode:
Würde das so klappen?
hInst:=BeginUpdateResource(pchar(Path), False);
UpdateResource(hInst, RT_ICON, MAKEINTRESOURCE(1), LANG_NEUTRAL, ????, ????); EndUpdateResource(hInst, False); |
AW: Icon Changer
Probier's aus. ;)
|
AW: Icon Changer
Ich bin mir nicht sicher aber ich glaube du musst das Icon in einen Stream laden und diesen als die letzten Parameter an UpdateResource übergeben.
Delphi-Quellcode:
var
ptr: Pointer; begin ... Stream.Read(ptr^, Stream-Size); ... UpdateResource(hInst, RT_ICON, MAKEINTRESOURCE(1), LANG_NEUTRAL, ptr, Stream.Size); .... freemem(ptr, Stream.Size + 1); end; |
AW: Icon Changer
So einfach funktioniert das bei Icons nicht. Die Icon Header Struktur liegt in einer RT_GROUPICON Resource (leicht modifiziert im Vergleich zur File Icon Header) und die Einzelbilder liegen in eigenständigen RT_ICON Resourcen.
Wenn du eine fertige Unit suchst, kannst du meinen Icon Parser hier verwenden: ![]() |
AW: Icon Changer
Danke Zacherl, die Unit ist wirklich gut! Nun weiß ich auch wie man den Header der EXE ändert, bei mir war dieser bisher immer ungültig..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz