Lufer

  • 首页
  • 编程
  • 学习笔记
  • 日常折腾
Lufer
Code the World
  1. 首页
  2. 编程
  3. .NET
  4. 正文

C Sharp开发手记--Form间通信功能的简单实现

2016年5月30日 457点热度 0人点赞 0条评论

Form2,向Form1发送消息 0x0444为自定义进程间通信代码。

private IntPtr ip = IntPtr.Zero;
[DllImport("user32")]
private static extern bool SendMessage(IntPtr a, int b, int c, string d);
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);

ip = FindWindow(null, "Form1");
if (ip == IntPtr.Zero)
{
   MessageBox.Show("Form1未运行。");
   return;
}
else
{
   SendMessage(this.ip, 0x0444, 100, "ssss");
}

  Form1,等待接收消息并进行相应处理 //需要重载DefWndProc方法

protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
  switch (m.Msg)
  {
      case 0x0444://处理消息
         //do something
         break;
      default:
         base.DefWndProc(ref m);//调用基类函数处理非自定义消息。
         break;
   }
}
标签: .NET
最后更新:2023年7月10日

Lufer

新的一天开始啦

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 lufer.cc.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021045819号