有个问题,大家帮忙:
有两个程序a.exe和b.exe。
怎么能让窗口a和窗口b相互用sendmessage()发送消息?
两个窗口怎么互相取得对方的handle?
有两个程序a.exe和b.exe。
怎么能让窗口a和窗口b相互用sendmessage()发送消息?
两个窗口怎么互相取得对方的handle?
解决方案 »
- ▲▲▲ 请问这个DBGrid是用什么做的,请指点下 ▲▲▲
- stringgrid如何用鼠标右键获得其中的格子的值
- 帮看这段删除纪录代码有什么问题?三层结构oracle
- 省总部,地区处,单位所,的数据时时交换处理该如何设计,急急。
- 如何将图片放大或缩小
- 简单,edit 的 text 不是数字就清成0重输。1000分!!!
- 文件上传,提示"内存不足"
- 关于李维的《Delphi5.x ADO/MTS/COM+高级程序设计》一书的问题(调用存储过程的例子)。
- 这个程序我还是弄不出来,发的消息我知道,可是我不知道怎么查找
- 麻烦推荐一些经典的Delphi网站(国内外的)
- 求救!!!建多级树的原代码,高分相送!
- 能不能打印panel控件中的内容,高分请高手指教!
nHandle : THandle;
Handle := FindWindow(NIL,pchar(B窗口的标题));Sendmessage(nHandle,.....);
就行了。
而B反过来也行。
procedure Init;
var
s : pchar;
h : hwnd;
buf:tagCOPYDATASTRUCT;
begin
h := FindWindow('TForm1', NIL);
if h <> 0 then
begin
GetMem(s,100);
buf.lpData :=s;
buf.cbData:=100;
buf.dwData :=100;
strpcopy(s, ParamStr(0));
SendMessage(h, WM_COPYDATA, 0, integer(@buf));
end;
end;接收端:
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA; procedure TForm1.WM_COPYDATA(var msg: TMessage);
var
P:^tagCOPYDATASTRUCT;
begin
p:=Pointer(Msg.lParam);
ShowMessage(strpas(p.lpData));
end;