C# winform 两个不同程序(exe)频繁交互传值

程序A有Button单击程序B界面一系列操作得到想要数据返回给程序A... 程序A 有Button 单击 程序B界面一系列操作得到想要数据返回给程序A 展开
 我来答
lxf_120
推荐于2018-04-12 · TA获得超过250个赞
知道小有建树答主
回答量:448
采纳率:0%
帮助的人:216万
展开全部
这个其实用消息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);
}
片荒推荐
2010-05-06 · 超过17用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:34.3万
展开全部
高难度动作,
程序没关联。

通过中间文档进行通信,,

1.A 点击Button 对XML或TXT写入 操作表示 比如说“ACTION” 写入到ACTION.TXT文件

2.B程序 定时执行 每1秒读一次 ACTION.TXT 文件 发现 “ACTION”是 执行操作,将结果返回到ACTION.TXT 文档,

3.A程序从ACTION.TXT文档读取 结果,,具体是定时 还是间隔随便了,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
墨秋梵光03r
2010-05-06 · TA获得超过156个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:212万
展开全部
不是很明白,百度hi我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式