示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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;
                }
            }
        }