POSTMESSAGE로 STRING전송

Delphi 2018. 8. 31. 11:27
*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
Posted by Revers Tuna
,