最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WinForm實現(xiàn)跨進程通信的方法

 更新時間:2014年08月26日 16:25:46   投稿:shichen2014  
這篇文章主要介紹了WinForm實現(xiàn)跨進程通信的方法,通過一個WinMessageHelper類實現(xiàn)這一功能,需要的朋友可以參考下

本文實例展示了WinForm實現(xiàn)跨進程通信的方法,分享給大家供大家參考之用。具體方法如下:

主要功能代碼如下:

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>
  /// 發(fā)送消息
  /// </summary>
  /// <param name="windowReceiveTitle">接收方窗體標題名稱</param>
  /// <param name="strData">要發(fā)送的數(shù)據(jù)</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>
  /// 在窗體中覆蓋接收消息函數(shù)
  /// 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>接收的到數(shù)據(jù)</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#程序設計有所幫助。

相關文章

  • Unity實現(xiàn)旋轉扭曲圖像特效

    Unity實現(xiàn)旋轉扭曲圖像特效

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)旋轉扭曲圖像特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C# IEnumerator枚舉器的具體使用

    C# IEnumerator枚舉器的具體使用

    本文主要介紹了C# IEnumerator枚舉器的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • C#使用webbrowser的常見用法實例

    C#使用webbrowser的常見用法實例

    這篇文章主要介紹了C#使用webbrowser的常見用法,涉及C#使用webbrowser實現(xiàn)判斷網(wǎng)絡連接、模擬登陸、點擊等常用技巧,需要的朋友可以參考下
    2015-08-08
  • c# 如何實現(xiàn)一個簡單的json解析器

    c# 如何實現(xiàn)一個簡單的json解析器

    這篇文章主要介紹了c# 如何實現(xiàn)一個簡單的json解析器,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • 利用Aspose.Word控件實現(xiàn)Word文檔的操作

    利用Aspose.Word控件實現(xiàn)Word文檔的操作

    偶然一次機會,一個項目的報表功能指定需要導出為Word文檔,因此尋找了很多篇文章,不過多數(shù)介紹的比較簡單一點,于是也參考了官方的幫助介紹,終于滿足了客戶的需求。下面我由淺入深來介紹這個控件在實際業(yè)務中的使用過程吧
    2013-05-05
  • c# 實現(xiàn)子窗口關閉父窗口也關閉的方法

    c# 實現(xiàn)子窗口關閉父窗口也關閉的方法

    下面小編就為大家?guī)硪黄猚# 實現(xiàn)子窗口關閉父窗口也關閉的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#封裝的常用文件操作類實例

    C#封裝的常用文件操作類實例

    這篇文章主要介紹了C#封裝的常用文件操作類,實例分析了C#文件操作的技巧,涉及C#的讀寫、復制、刪除等常用操作,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • unity制作瞄準鏡效果

    unity制作瞄準鏡效果

    這篇文章主要為大家詳細介紹了unity制作瞄準鏡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C#操作ini文件的幫助類

    C#操作ini文件的幫助類

    這篇文章介紹了C#操作ini文件的幫助類,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 配置C#的系統(tǒng)環(huán)境變量的方法

    配置C#的系統(tǒng)環(huán)境變量的方法

    配置C#的系統(tǒng)環(huán)境變量的方法...
    2007-03-03

最新評論

莱西市| 临汾市| 海林市| 东兰县| 龙门县| 河北省| 康定县| 彰化县| 东源县| 肇东市| 栖霞市| 苗栗市| 枣庄市| 英德市| 香格里拉县| 长乐市| 洛阳市| 宣恩县| 随州市| 泰和县| 遂昌县| 昆山市| 平顺县| 隆德县| 贡觉县| 永胜县| 沾化县| 丹东市| 花莲市| 岑溪市| 无棣县| 南宫市| 昂仁县| 依兰县| 云林县| 江北区| 兰溪市| 静乐县| 涡阳县| 浦东新区| 法库县|