Nun wollte ich die andere Möglichkeit mit UpdateResource noch ausprobieren.
Wie man damit eine Resource in einer exe-Datei ändert habe ich schon herausgefunden.
Wie / wo kann ich diese Resource erstellen, die in dem zu ändernden Programm enthalten sind ?
Edit:
Jetzt weiß ich nicht wo der Fehler steckt.
Ich habe eine Resource in Programm B per lrs-file eingebunden.
Diese kann ich im Programm B selber abfragen:
LazarusResources.Find('text').Value;
(Die Resource heißt
text)
Ich hoffte, diese mit Programm A ändern zu können, hier mein Code:
Delphi-Quellcode:
function SetRes(filename, resname, resvalue: string): boolean;
var
hUpdate: THandle;
Size: DWord;
begin
hUpdate := BeginUpdateResource(PChar(filename), True);
if (hUpdate <> 0) and (hUpdate <> INVALID_HANDLE_VALUE) then
begin
try
Size := Succ(Length(resvalue)) * SizeOf(char);
Result := UpdateResource(hUpdate, RT_RCDATA, PChar(resname),
0, PChar(resvalue), Size);
finally
EndUpdateResource(hUpdate, False);
end;
end;
end;
folgende Parameter verwende ich:
Syntax:
SetRes('ProgrammB.exe','text','Ein Test...')
Der einzige Unterschied, den ich in B festmachen kann, ist, dass das Design anders ist; ein Button wird nicht mehr blau sondern eher gräulich ist, es erinnert an win98(?).
Edit^2: habe den namen auch mal von "text" umbenannt, aber es funktioniert nicht!
Vielen Dank