两个C#项目之间怎样传值

两个C#项目之间怎样传值,第1张

修改外在标识另一个自动获取例如:数据库,文件,COM+等然后另一个自动获取.

COM+组件可以提供一块共享内存来供多个程序共同使用

或者利用亩喊物 socket 等进行 传输.一方发送,一方侦听并接收

如果你是二个项目的话,应该是迅液用上面的方法

如果你是一个项目的渗茄二个窗体之间的话,那就用public方法吧

这个其实用消息SendMessageEx的话最为简单, 提示个思路

A程序可以通过B程序的名称获取到钩子ProcessID,得到句颂拆柄,发送消息 send +参数 到B , B重写 DefWndProc消息方法, 捕获send事件 进行处理 ,(这个时间 可以让界面有一系列的反应) . B处理完成后, 按悄樱旦同样的方法把结果发送给A

两段关键代码

//重写消息

protected override void DefWndProc(ref System.Windows.Forms.Message m)

{

switch (m.Msg)

{

case WM_COPYDATA:

COPYDATASTRUCT mystr = new COPYDATASTRUCT()

Type mytype = mystr.GetType()

mystr = (COPYDATASTRUCT)m.GetLParam(mytype)

//mystr:参数

default:

base.DefWndProc(ref m)

break

}

}

//发送消息启扰

private static void Send(IntPtr hwid, string str)

{

byte[] sarr = System.Text.Encoding.Default.GetBytes(str)

int len = sarr.Length

COPYDATASTRUCT cds

cds.dwData = (IntPtr)100

cds.lpData = str

cds.cbData = len + 1

SendMessage(hwid, WM_COPYDATA, 0, ref cds)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12558510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存