关于进程之间的消息传递`` 使用postmessage(HWND_BROADCAST,WM_MSG,0,1);欲将信息传递给另一个application,请问如何实时接收该信息?我定义了procedure GetMsg(var Msg:Tmessage);message WM_MSG;可是不管用,请高手指教```````` 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 postmessage的第一个参数是你要接收消息处理的应用程序的句柄。可以用findwindow函数获得. 可不可以使用共享内存??先将数据写入shared memory然后发出消息,然后,另一个process收到消息读shared memory ...你的两个process必然不是同时启动的.因此,在任何一个启动的时候,检查shared memory,如果有其他process的ID,就读取并保存,然后写入自己的process ID,之后向先前的process发送消息---我已经写入了我的process ID了,快来读! ;如果没有,就向shared memory中写入自己的process ID,然后等待其他process发来的通知消息即可. 这样知道了,对方process的ID 应该其他的就容易了吧?? 详细情况是这样的,我不想做一个timer实时监控数据库的变化,希望做一个OCX文件让coldfusion调用,一旦b/s修改了数据库,同时向我的服务器端软件传递一个数据库更改通知。在消息发送端我定义的是:const WM_MSG = WM_USER+1000;。。。postmessage(findwindow(pchar('ReceivePro'),nil),WM_MSG,0,1);接收端:const WM_MSG = WM_USER+1000;。。。private procedure GetMsg(var Msg:Tmessage);message WM_MSG;。。procedure TForm1.GetMsg(var Msg:TMessage);begin if msg.WParam=0 then edit1.Text:='ok' else edit1.Text:='fail'; if Msg.LParam=1 then edit2.Text:='ok' else Edit2.Text:='fail';end;结果没有反应```:~(这是我第一次尝试使用windows的消息机制,理解的还是有偏差```希望大家不要笑话我`````谢了 你的消息内容在哪儿呢 ?------------------------------------------s := '1234' ;postmessage(findwindow(pchar('ReceivePro'),nil),WM_MSG,0,Integer(s));procedure TForm1.GetMsg(var Msg:TMessage);begin Edit1.Text := String(Msg.LParam) ; end; 这种方法只能在进程内部传递消息````我希望在两个不同的application之间传递消息,怎么办? 简单的翻译题(1题10分,谢谢) 求救:字符串处理问题? 请问大家怎么在DBGrid里进行多行删除复制等的操作? 如何能固定数据库记录的位置? 怎样将*.BIL文件导入SQL? 用printer 如何画线打印?我画不出 Delphi里和VB的GotFocus和LoseFocus一样的事件是什么? 用ado连接数据库后,需要在用户界面中改变路据库的路径及名称,请问用什么方式最好? 谁能给我讲讲pascal里的压缩数组是怎么一回事? 关于FORM的小问题~~~~~~~~~ delphi5和sql2000 子窗口的问题
先将数据写入shared memory然后发出消息,然后,另一个process收到消息读shared memory ...
你的两个process必然不是同时启动的.因此,在任何一个启动的时候,检查shared memory,如果有其他process的ID,就读取并保存,然后写入自己的process ID,之后向先前的process发送消息---我已经写入了我的process ID了,快来读! ;如果没有,就向shared memory中写入自己的process ID,然后等待其他process发来的通知消息即可.
这样知道了,对方process的ID 应该其他的就容易了吧??
在消息发送端我定义的是:
const
WM_MSG = WM_USER+1000;
。
。
。
postmessage(findwindow(pchar('ReceivePro'),nil),WM_MSG,0,1);接收端:
const
WM_MSG = WM_USER+1000;
。
。
。
private
procedure GetMsg(var Msg:Tmessage);message WM_MSG;
。
。
procedure TForm1.GetMsg(var Msg:TMessage);
begin
if msg.WParam=0 then edit1.Text:='ok'
else edit1.Text:='fail';
if Msg.LParam=1 then edit2.Text:='ok'
else Edit2.Text:='fail';
end;结果没有反应```:~(
这是我第一次尝试使用windows的消息机制,理解的还是有偏差```希望大家不要笑话我`````谢了
s := '1234' ;postmessage(findwindow(pchar('ReceivePro'),nil),WM_MSG,0,Integer(s));
procedure TForm1.GetMsg(var Msg:TMessage);
begin
Edit1.Text := String(Msg.LParam) ;
end;