Einzelnen Beitrag anzeigen

Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#1

Modify Resource im Speicher

  Alt 9. Jul 2021, 16:02
Hallo

Ich möchte gerne eine DFM (RC_DATA) Resource im Speicher modifizieren.

Bisher habe ich nur gefunden wie ich mit UpdateResource + BeginUpdateResource eine EXE Datei modizifzieren kann.

und dieses Stückchen Code

Delphi-Quellcode:
procedure WriteResource(const ResName: string; ResType: PChar; data : PChar; len : integer);
var
    Res: HRSRC;
    ResHandle: HGLOBAL;
    Ptr: Pointer;
    OldProtect: DWORD;
begin
    Res := FindResource(HInstance, PChar(ResName), ResType);
    Win32Check(Res <> 0);

    ResHandle := LoadResource(HInstance, Res);
    Win32Check(ResHandle <> 0);

    Ptr := LockResource(ResHandle);
    Win32Check(Ptr <> nil);

    Win32Check(VirtualProtect(Ptr, SizeofResource(HInstance, Res), PAGE_READWRITE, OldProtect));
    ZeroMemory(Ptr, SizeofRes ource(HInstance, Res));
    Win32Check(VirtualProtect(Ptr, SizeofResource(HInstance, Res), OldProtect, OldProtect));
end;
Das wäre im Prinzip schon sowas was ich brauche, nur habe ich das Problem das ich da den Inhalt nicht nur überschreiben will, osndenr sich auch die Größe ändert (kleiner - geht ja eventuell) aber auch größer.

Hat da wer eine Idee?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat