procedure ReplaceShowMessage(const Msg: string);beginShowMessagePos('你好', -1, -1); end;procedure NewShowMessage(const Msg: string);typeTShowMessage = procedure(const Msg: string);beginTShowMessage(@ReplaceShowMessage)(Msg);end;procedure EndNewShowMessage;beginend;procedure TForm1.FormCreate(Sender: TObject);varvProcess: THandle;vNumberOfBytesRead: DWORD;beginvProcess := OpenProcess(PROCESS_ALL_ACCESS, True, GetCurrentProcessId);tryWriteProcessMemory(vProcess, @ShowMessage, @NewShowMessage, Integer(@EndNewShowMessage) - Integer(@NewShowMessage), vNumberOfBytesRead);finallyCloseHandle(vProcess);end;end;procedure TForm1.Button1Click(Sender: TObject);beginShowMessage('Hello');end; |