手机
当前位置:查字典教程网 >编程开发 >C#教程 >WinForm实现跨进程通信的方法
WinForm实现跨进程通信的方法
摘要:本文实例展示了WinForm实现跨进程通信的方法,分享给大家供大家参考之用。具体方法如下:主要功能代码如下:publicclassWinMe...

本文实例展示了WinForm实现跨进程通信的方法,分享给大家供大家参考之用。具体方法如下:

主要功能代码如下:

public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; } //使用COPYDATA进行跨进程通信 public const int WM_COPYDATA = 0x004A; [DllImport("User32.dll", EntryPoint = "SendMessage")] private static extern int SendMessage( int hWnd, // handle to destination window int Msg, // message int wParam, // first message parameter ref COPYDATASTRUCT lParam // second message parameter ); [DllImport("User32.dll", EntryPoint = "FindWindow")] private static extern int FindWindow(string lpClassName, string lpWindowName); /// <summary> /// 发送消息 /// </summary> /// <param name="windowReceiveTitle">接收方窗体标题名称</param> /// <param name="strData">要发送的数据</param> public static void Send(string windowReceiveTitle, string strData) { int winHandler = FindWindow(null,windowReceiveTitle); if (winHandler != 0) { byte[] sarr = System.Text.Encoding.Default.GetBytes(strData); int len = sarr.Length + 1; COPYDATASTRUCT cds; cds.dwData = (IntPtr)100; cds.lpData = strData; cds.cbData = len; SendMessage(winHandler, WM_COPYDATA, 0, ref cds); } } /// <summary> /// 接收消息 /// </summary> /// <example> /// 在窗体中覆盖接收消息函数 /// protected override void DefWndProc(ref System.Windows.Forms.Message m) /// { /// switch(m.Msg) /// { /// case WinMessageHelper.WM_COPYDATA: /// string str = WinMessageHelper.Receive(ref m); /// break; /// default: /// base.DefWndProc(ref m); /// break; /// /// } /// } /// </example> /// <returns>接收的到数据</returns> public static string Receive(ref System.Windows.Forms.Message m) { COPYDATASTRUCT cds = new COPYDATASTRUCT(); Type cdsType = cds.GetType(); cds = (COPYDATASTRUCT)m.GetLParam(cdsType); return cds.lpData; } }

希望本文所述实例对大家C#程序设计有所帮助。

【WinForm实现跨进程通信的方法】相关文章:

解决C# winForm自定义鼠标样式的两种实现方法详解

用C#编写获取远程IP,MAC的方法

WinForm中快捷键与组合按键的设置方法

c#实现隐藏与显示任务栏的方法详解

c# 重载WndProc,实现重写“最小化”的实现方法

WinForm子窗体访问父窗体控件的实现方法

C#实现对AES加密和解密的方法

在Winform动态启动、控制台命令行的方法

C# WinForm中Panel实现用鼠标操作滚动条的实例方法

C#访问应用程序配置文件的方法

精品推荐
分类导航