안녕하세요.
WM_COPYDATA 를 사용해서 데이타를 주고 받을 때.
데이타를 던진 쪽을 죽이려고 해도 죽지가 않습니다.
WM_CLOSE를 해도 죽지 않는데 아시는 분 계신가요 ?
감사합니다..
보내는 부분.
var
wnn:HWND;
DataStruct: TCopyDataStruct;
Data: TData;
begin
wnn:=FindWindow('TReceiving','받기');
Data.s := Edit1.Text;
DataStruct.dwData := wnn;
DataStruct.cbData := SizeOf(TData);
DataStruct.lpData := @Data;
SendMessage(wnn, WM_COPYDATA,wParam(Application.Handle), lParam(@DataStruct));
end;
받는 부분.
var
wnn : HWND;
Data: TData;
begin
CopyMemory(@data, Message.CopyDataStruct^.lpData, SizeOf(TData));
wnn := FindWindow('TForm1', nil);
SendMessage(wnn,WM_CLOSE,0,0); <- 죽이 않음...
if wnn > 0 then begin
ShowMessage('닫기 에러');
end else begin
ShowMessage('닫기 성공');
end;
Memo1.lines.add(Data.s);
end;
> 안녕하세요.
> WM_COPYDATA 를 사용해서 데이타를 주고 받을 때.
> 데이타를 던진 쪽을 죽이려고 해도 죽지가 않습니다.
> WM_CLOSE를 해도 죽지 않는데 아시는 분 계신가요 ?
>
> 감사합니다..
>
> 보내는 부분.
> var
> wnn:HWND;
> DataStruct: TCopyDataStruct;
> Data: TData;
> begin
> wnn:=FindWindow('TReceiving','받기');
> Data.s := Edit1.Text;
> DataStruct.dwData := wnn;
> DataStruct.cbData := SizeOf(TData);
> DataStruct.lpData := @Data;
> SendMessage(wnn, WM_COPYDATA,wParam(Application.Handle), lParam(@DataStruct));
> end;
>
> 받는 부분.
> var
> wnn : HWND;
> Data: TData;
> begin
> CopyMemory(@data, Message.CopyDataStruct^.lpData, SizeOf(TData));
> wnn := FindWindow('TForm1', nil);
> SendMessage(wnn,WM_CLOSE,0,0); <- 죽이 않음...
> if wnn > 0 then begin
> ShowMessage('닫기 에러');
> end else begin
> ShowMessage('닫기 성공');
> end;
> Memo1.lines.add(Data.s);
> end;
PostMessage(wnn, WM_CLOSE, 0, 0); <==혹시 모르니까 요거한번 사용해보세요