*Use WM_COPYDATA when passing STRING via SENDMESSAGE.
[SENDER]
var vHwnd: HWND; sStr: PChar; vLParam: DWORD; begin vHwnd := FindWindow('TfrmMain', nil); if vHwnd <> 0 then begin sStr := PChar('input send string'); vLParam := GlobalAddAtom(sStr); PostMessage(vHwnd, WM_USER + 9791, LongInt(Handle), vLParam); end; end;[RECEIVER]
procedure PostMessageFromString(var msg: TMessage); message WM_USER + 9791;
var pStr: PChar; sString: string; begin GetMem(pStr, 1024); if GlobalGetAtomName(msg.LParam, pStr, 1024) > 0 then sString:= StrPas(pStr); GlobalDeleteAtom(msg.LParam); FreeMem(pStr); ShowMessage(sString); end;
'Delphi' 카테고리의 다른 글
Guard : 메모리 자동해제... (0) | 2018.08.31 |
---|---|
모든 콤포넌트의 font를 변경 (0) | 2018.08.31 |
백업파일(~pas, ~dfm) 자동 생성 제한 (0) | 2015.11.19 |
TWinControl을 동그란 모양으로 깍기 (0) | 2015.11.06 |
Edit 키 입력 제어 (0) | 2015.11.05 |