Czy podpowie mi ktoś jak można zapisać np. ikonę w moim pliku *.exe ale już po kompilacji? Chodzi mi o program, który potrafi dodawać ikonę do zasobów - swoich lub ewentualnie do innego programu. Natknąłem się na TResourceStream. Czy tego trzeba użyć? Tylko tym chyba nie da się zapisywać uruchomionego programu. Proszę o jakieś wskazówki. Z góry dzięki.
0
0
Jest artukulik na ten tamet i to bylo juz poruszane na forum poszukaj :) bona 99% bylo :)
0
Co to artykułu na ten temat to nie jestem pewien.
Tu masz przykład na dodanie bitmapki - chyba sobie poradzisz z zamianą na ikonę:
var
hUpdateRes: THandle;
Done: Boolean;
Res: TResourceStream;
begin
Res := TResourceStream.Create(hinstance, 'BITMAP1', RT_BITMAP);
hUpdateRes := BeginUpdateResource(PCHAR('c:\Project1.exe'), FALSE);
if hUpdateRes = NULL then
memo1.Lines.Add('Błąd');
Done := UpdateResource(hUpdateRes, RT_BITMAP, 'BITMAP3', LANG_NEUTRAL, Res.Memory, Res.Size);
if Done = False then
memo1.Lines.Add('Nie udalo sie zrobic update`a');
if (not EndUpdateResource(hUpdateRes, FALSE)) then
memo1.Lines.Add('tu znowu jakis blad');
end;
A poza tym wszystko znajdziesz w WSDK i MSDN.
0
Tylko, że ten kod ma dwie wady:
- Działa tylko na win 2000 i wyższych
- Nie działa dla ikonek... :P mam na myśli oczywiście sytuację po zamianie RT_BITMAP na RT_ICONGROUP, itd :P.
W pakiecie madcollection jest gdzieś moduł do zasobów, który ponoć sobie z tym radzi - http://madshi.net .