Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi resource patchen (https://www.delphipraxis.net/121301-resource-patchen.html)

Bat 25. Sep 2008 10:07


resource patchen
 
Hallo,

Ich bin neu auf dem Forum und bräuchte eure Hilfe:

Ich möchte ein Programm schreiben der Ressourcen innerhalb fertig kompilierten .exe Dateien einfügen bzw. modifizieren kann. Ich habe das folgendes Problem: die Ressourcen die ich erzeugen möchte sind vom Typ messageTable, und ich habe keine Idee wie ich der UpdateResource Befehlaufruf schreiben soll mit messageTable als Parameter. Ich habe folgendem Code geschrieben, anhand von Beispiele die ich hier im Forum gefunden habe:

Delphi-Quellcode:
procedure TMTPForm.patchButtonClick(Sender: TObject);

var
hFile          : THandle;
Value          : String;
FileName       : String;

begin
    FileName := 'patch_me.exe';

    hFile := BeginUpdateResource(PChar(FileName), False);

    Value := 'TEST';

    UpdateResource(hFile, MAKEINTRESOURCE(RT_MESSAGETABLE), MAKEINTRESOURCE(1),
                LANG_SYSTEM_DEFAULT{MakeLangID(LANG_GERMAN, SUBLANG_GERMAN)},
                PChar(Value), SizeOf(Value));
    EndUpdateResource(hFile, False);
end;
Es ist mir relativ klar dass ich ein messageTable aus einem String nicht erzeugen kann, aber was soll ich hier als Parameter geben?

Mir ist schon bekannt wie man messageTable mit dem mc.exe Programm kompilieren kann und danach aus dem brcc32 Tool ein .res Datei erzeugen kann. Aber darum geht es hier: ich möchte diese Schritte überspringen und direkt in Delphi messageTables erzeugen. Ich weiss auch dass es möglich ist, da zum Beispiel die Software XN Resource Editor in Delphi programmiert würde und genau das machen kann.

Hat jemand eine Idee?

Gruß
Bat

zero_x 26. Sep 2008 11:52

Re: resource patchen
 
Hallo Bat,

ich bin mir nicht ganz sicher, aber ich glaube, dass du die Nummer der Ressource angeben musst. Woher soll denn deine "Zeilanwendung" wissen wohin die Ressource soll?

zero_x


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz