主题:怎么给单独的一个进程发消息啊
wanglj
[专家分:0] 发布于 2006-12-08 16:54:00
请教各位大哥,大姐,怎么在程序中只给一个主控进程发消息,不给所有的进程发消息,用了SENDappmessage,它是给所有的进程发的,最好能告诉我详细的用法,谢谢!
回复列表 (共2个回复)
沙发
ywmjs [专家分:740] 发布于 2006-12-13 10:51:00
用SendMessage试试吧。
参数 类型及说明
hwnd Long,要接收消息的那个窗口的句柄
wMsg Long,消息的标识符
wParam Long,具体取决于消息
lParam Any,具体取决于消息
板凳
ILikePromgram [专家分:190] 发布于 2006-12-15 21:39:00
用TCopyDataStruct的方法试一试,这个好像是进程间发消息的.
procedure TForm1.Button1Click(Sender: TObject);
var
ds: TCopyDataStruct;
hd: THandle;
begin
ds.cbData := Length (Edit1.Text) + 1;
GetMem (ds.lpData, ds.cbData ); //为传递的数据区分配内存
StrCopy (ds.lpData, PChar (Edit1.Text));
Hd := FindWindow (nil, 'Form2'); // 获得接受窗口的句柄
if Hd <> 0 then
SendMessage (Hd, WM_COPYDATA, Handle,
Cardinal(@ds)) // 发送WM_COPYDATA消息
else
ShowMessage ('目标窗口没找到!');
FreeMem (ds.lpData); //释放资源
end;
我来回复