/// <summary> /// SendMessage To Window /// </summary> /// <param name="windowName">window的title,建议加上GUID,不会重复</param> /// <param name="strMsg">要发送的字符串</param> public static void SendMessage(string windowName, SeatManage.EnumType.SendClentMessageType messageType, string strMsg) { string sendMsg = ((int)messageType).ToString() + ";" + strMsg; IntPtr hwnd = FindWindow(null, windowName); if (hwnd != IntPtr.Zero) { CopyDataStruct cds; cds.dwData = IntPtr.Zero; cds.lpData = sendMsg; //注意:长度为字节数 cds.cbData = System.Text.Encoding.Default.GetBytes(sendMsg).Length + 1; // 消息来源窗体 int fromWindowHandler = 0; SendMessage(hwnd, WM_COPYDATA, fromWindowHandler, ref cds); } }
/// <summary> /// 消息处理 /// </summary> /// <param name="sender"></param> /// <param name="message"></param> void messageHelper_GetMessage(object sender, string message) { string[] msg = message.Split(';'); int type = 0; if (int.TryParse(msg[0], out type)) { nowState = (SeatManage.EnumType.SendClentMessageType)type; switch (nowState) { case SeatManage.EnumType.SendClentMessageType.MoveDown: { int size = 0; if (msg.Length > 1 && int.TryParse(msg[1], out size)) { this.Top += size; } } break; case SeatManage.EnumType.SendClentMessageType.MoveUp: { int size = 0; if (msg.Length > 1 && int.TryParse(msg[1], out size)) { this.Top -= size; } } break; case SeatManage.EnumType.SendClentMessageType.Normal: { this.Top = 0; } break; case SeatManage.EnumType.SendClentMessageType.OnLock: { this.Top = 0; if (showWindow != null) { showWindow.Close(); showWindow = null; } } break; case SeatManage.EnumType.SendClentMessageType.Close: { Application.Current.Shutdown(); } break; case SeatManage.EnumType.SendClentMessageType.ScreenShots: { try { Code.ScreenShots.SaveWindowContent(this, msg[1]); } catch (Exception ex) { } } break; } } }