WinForm實現跨進程通信的方法
阿新 • • 發佈:2017-11-23
sage 跑步 extern text dddd line add 格式化 title
WinForm實現跨進程通信的方法
本文地址: http://www.paobuke.com/develop/c-develop/pbk23590.html
C#實現遠程關閉計算機或重啟計算機的方法C#實現復制文件夾中文件到另一個文件夾的方法C#圖像處理之木刻效果實現方法C#托管堆對象實例包含內容分析
本文實例展示了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實現跨進程通信的方法
本文地址: http://www.paobuke.com/develop/c-develop/pbk23590.html
相關內容
WPF中button重載樣式C#小數點格式化用法小結C# Winform 子窗體訪問父級窗體的控件和屬性實現ASP.NET無刷新下載並提示下載完成的開發思路C#實現遠程關閉計算機或重啟計算機的方法C#實現復制文件夾中文件到另一個文件夾的方法C#圖像處理之木刻效果實現方法C#托管堆對象實例包含內容分析
WinForm實現跨進程通信的方法