如能解决这个问题,立马给200分!

lightwood 2003-05-04 10:03:34
如何实现在两个应用程序之间传递数据。
例如:应用程序A调用了一个类库中的对象o,o在被调用了其方法时向应用程序B发消息以通知应用程序B,此情况不允许使用Remoting和Socket等技术。
或将下列Delphi代码用C#实现,如不使用非安全代码最好!
procedure Init;
var
s : pchar;
h : hwnd;
buf:tagCOPYDATASTRUCT;
begin
h := FindWindow('TForm1', 'Form1');
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 TForm1.WM_COPYDATA(var msg: TMessage);
var
P:^tagCOPYDATASTRUCT;
begin
p:=Pointer(Msg.lParam);
ShowMessage(strpas(p.lpData));
end;
...全文
21 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lightwood 2003-05-10
to:chainet(学习创业)
算数,可我需要的是用消息发送字符串呀!
  • 打赏
  • 举报
回复
Soking 2003-05-09
MSMQ 或者是
volatile 关键字指示字段可由操作系统、硬件或并发执行的线程在程序中进行修改。

系统总是在 volatile 对象被请求的那一刻读取其当前值,即使上一条指令从同一对象请求值。而且,该对象的值在赋值时立即写入。
  • 打赏
  • 举报
回复
swhrc 2003-05-09
请问要这么多分有什么用?
  • 打赏
  • 举报
回复
dplxp 2003-05-09
up
  • 打赏
  • 举报
回复
chainet 2003-05-09
楼主说话可要算数啊~呵呵~
  • 打赏
  • 举报
回复
chainet 2003-05-09
我做了一个出来,你看看。
例如:程序A要发给程序B一个消息。
假定程序B的名称叫Form1;
在程序A中加入:
using System.Runtime.InteropServices;
然后加入下面代码
// Import the SendMessage method of the User32 DLL.
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);

private void button1_Click(object sender, System.EventArgs e)
{

IntPtr hWnd= FindWindow(null,"Form1");
SendMessage(hWnd,123,0,0);

}

、、、、
在程序B中(名字叫“Form1”);
重载WndProc方法,加入以下代码:
protected override void WndProc( ref Message m )
{
switch(m.Msg)
{
case 123:
MessageBox.Show("我收到了123!");
break;
}
base.WndProc(ref m );
}

运行即可。
  • 打赏
  • 举报
回复
lightwood 2003-05-09
真的没人会吗??????????
都等怎么长时间了!
  • 打赏
  • 举报
回复
lightwood 2003-05-05
有没有会的,都等了几天了!
  • 打赏
  • 举报
回复
erigido 2003-05-04
up
  • 打赏
  • 举报
回复
glhx 2003-05-04
使用windows消息服务可以做到这一点。
  • 打赏
  • 举报
回复
lightwood 2003-05-04
你在这发什么东西,我要答案,会的请解答!
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-05-04 10:03
社区公告

让您成为最强悍的C#开发者