Изменить ресурсные строки во время выполнения

uses

Consts;

procedure TForm1.Button1Click(Sender: TObject);

begin

InputBox('Test', 'Enter something', 'Test');

end;

procedure HookResourceString(rs: PResStringRec; newStr: PChar);

var

oldprotect: DWORD;

begin

VirtualProtect(rs, SizeOf(rs^), PAGE_EXECUTE_READWRITE, @oldProtect);

rs^.Identifier := Integer(newStr);

VirtualProtect(rs, SizeOf(rs^), oldProtect, @oldProtect);

end;

const

NewOK: PChar = 'New Ok';

NewCancel: PChar = 'New Cancel';

initialization

HookResourceString(@SMsgDlgOK, NewOK);

HookResourceString(@SMsgDlgCancel, NewCancel);

end.