国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WinForm實現跨進程通信的方法

2020-01-24 02:28:30
字體:
來源:轉載
供稿:網友

本文實例展示了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#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 象山县| 玛沁县| 新和县| 内乡县| 巫山县| 南部县| 长汀县| 营山县| 安新县| 根河市| 故城县| 黄浦区| 当阳市| 威海市| 吴江市| 仙居县| 乾安县| 清河县| 花垣县| 泗洪县| 汉川市| 巨鹿县| 丹寨县| 新源县| 南京市| 南雄市| 云安县| 新乡市| 郯城县| 大兴区| 左权县| 新干县| 阳曲县| 张掖市| 阿图什市| 临泽县| 襄汾县| 绥滨县| 合山市| 舟山市| 逊克县|