コード例 #1
0
 /// <summary>
 /// 跨进程传递数据。
 /// </summary>
 /// <param name="windowName">窗口名称。</param>
 /// <param name="data">传递数据。</param>
 public static void WriteProcessData(string windowName, string data)
 {
     if (!string.IsNullOrEmpty(windowName) && !string.IsNullOrEmpty(data))
     {
         int wm_handler = FindWindow(null, windowName);
         if (wm_handler != 0)
         {
             byte[] array = Encoding.Default.GetBytes(data);
             CopyDataStruct cds = new CopyDataStruct();
             cds.dwData = (IntPtr)100;
             cds.lpData = data;
             cds.cbData = array.Length + 1;
             SendMessage(wm_handler, WM_COPYDATA, 0, ref cds);
         }
     }
 }
コード例 #2
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="m"></param>
 protected override void DefWndProc(ref Message m)
 {
     //获取进程间的通讯数据。
     if (m.Msg == ProcessDataComm.WM_COPYDATA)
     {
         CopyDataStruct cds = new CopyDataStruct();
         cds = (CopyDataStruct)m.GetLParam(cds.GetType());
         string data = cds.lpData;
         if (!string.IsNullOrEmpty(data))
         {
             this.fileUploadObserver.AddObserver(data);
         }
     }
     base.DefWndProc(ref m);
 }
コード例 #3
0
 private static extern int SendMessage(int hWnd, int msg, int wParam, ref CopyDataStruct lParam);