public static string ReciveMessage(ref Message m)
 {
     COPYDATASTRUCT mystr = new COPYDATASTRUCT();
     Type mytype = mystr.GetType();
     mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
     string data = mystr.lpData;
     Debug.WriteLine("WM_COPYDATA message:" + data);
     return data;
 }
示例#2
0
 protected override void DefWndProc(ref Message message)
 {
     if (message.Msg == WMA_InterPro)
     {
         COPYDATASTRUCT cds = new COPYDATASTRUCT();
         Type           t   = cds.GetType();
         cds = (COPYDATASTRUCT)message.GetLParam(t);
         string receiveInfo = cds.lpData;
         listBox1.Items.Add(receiveInfo);
     }
     else
     {
         base.DefWndProc(ref message);
     }
 }
示例#3
0
        //获取传递过来的字符串
        private string getCopyMessage(ref System.Windows.Forms.Message m)
        {
            COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
            Type           mytype = mystr.GetType();

            mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
            int flag = (int)mystr.dwData;

            byte[] bt = new byte[mystr.cbData];
            Marshal.Copy(mystr.lpData, bt, 0, bt.Length);
            string m2 = System.Text.Encoding.Unicode.GetString(bt);

            Console.WriteLine(m2);
            return(m2);
        }
示例#4
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                this.textBox1.Text = mystr.lpData;
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#5
0
 protected override void WndProc(ref Message message)
 {
     switch (message.Msg)
     {
     case WM_COPYDATA:
         COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
         Type           mytype = mystr.GetType();
         mystr = (COPYDATASTRUCT)message.GetLParam(mytype);
         if (mystr.lpData.Length > 3)
         {
             MessageBox.Show(mystr.lpData);
         }
         break;
     }
     base.WndProc(ref message);
 }
示例#6
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)      //copydata接收消息
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                Serial_SendProcess(mystr.lpData);
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#7
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            string token = "";
            COPYDATASTRUCT mystr;
            Type mytype = null;
            //MessageBox.Show(m.Msg.ToString());
            switch (m.Msg)
            {
                case WM_MESSAGE:
                    mystr = new COPYDATASTRUCT();
                    mytype = mystr.GetType();
                    mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                    token = mystr.bstrData;

                    eterm_bga.is_eterm_status = mystr.bstrData;
                    eterm_bga.ib_connect_status = false;
                    eterm_bga.ib_dataflag = false;
                    //    MessageBox.Show(this, mystr.bstrData, mystr.bstrCategory);
                    break;

                case WM_DATA:
                    mystr = new COPYDATASTRUCT();
                    mytype = mystr.GetType();
                    mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                    token = mystr.bstrData;

                    ShowData(token);
                    break;
                case WM_CTX:
                    mystr = new COPYDATASTRUCT();
                    mytype = mystr.GetType();
                    mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                    token = mystr.bstrToken;
                    CreatingCtx((int)m.WParam, token);
                    break;
                default:
                    base.DefWndProc(ref m);
                    if (eterm_bga.ib_connect_status)
                    {
                        eterm_bga.is_eterm_status = "Host system down";
                        eterm_bga.ib_connect_status = false;
                        eterm_bga.ib_dataflag = false;
                    }

                    break;
            }
        }
        public static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if (msg == WM_COPYDATA)
            {
                var data = new COPYDATASTRUCT();
                data = (COPYDATASTRUCT)Marshal.PtrToStructure(lParam, data.GetType());
                MessageBox.Show("Received command: " + Marshal.PtrToStringUni(data.lpData));
                switch (Marshal.PtrToStringUni(data.lpData))
                {
                case "UpdateAvailablesModpacks":
                    form.ChooseAvailableModpacks_Event(form, null);

                    break;
                }
            }
            return(IntPtr.Zero);
        }
        //接收传递的消息
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case WM_COPYDATA:
                    COPYDATASTRUCT mystr = new COPYDATASTRUCT();
                    Type mytype = mystr.GetType();
                    mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                    receiveMsg = mystr.lpData;

                    displayMessage(receiveMsg);
                    break;
                default:
                    base.DefWndProc(ref m);
                    break;
            }
        }
示例#10
0
 public void AddToQueue(Message m)
 {
     try
     {
         COPYDATASTRUCT CopyStruct = new COPYDATASTRUCT();
         CopyStruct = (COPYDATASTRUCT)m.GetLParam(CopyStruct.GetType());
         var tup = CConsoleContent.GetConsoleContent(CopyStruct.dwData.ToInt32(), CopyStruct.lpData);
         if (tup.Item1)
         {
             lock (_Queue) { _Queue.Enqueue(tup.Item2); }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("AddToQueue:" + ex.Message);
     }
 }
示例#11
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            const int WM_COPYDATA = 0x004A;

            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT cds     = new COPYDATASTRUCT();
                Type           cdsType = cds.GetType();
                cds = (COPYDATASTRUCT)m.GetLParam(cdsType);
                if (cds.dwData == IntPtr.Zero)
                {    // URWPGSim2DServer程序中按下的是End按钮则结束录像
                    btnStop_Click(null, null);
                    System.Diagnostics.Process.GetCurrentProcess().Kill();
                }
                else
                {    // URWPGSim2DServer程序中按下的是Video按钮则将发送的参数设置到Screencast界面
                    // 从收到的字符串分离录像区域左上角坐标/宽度高度/
                    // URWPGSim2D主窗口句柄/录像保存完整文件名
                    int x = Convert.ToInt32(cds.lpData.Substring(0, 6));
                    int y = Convert.ToInt32(cds.lpData.Substring(6, 6));
                    int w = Convert.ToInt32(cds.lpData.Substring(12, 6));
                    int h = Convert.ToInt32(cds.lpData.Substring(18, 6));
                    txtX.Text        = x.ToString();
                    txtY.Text        = y.ToString();
                    txtWidth.Text    = w.ToString();
                    txtHeight.Text   = h.ToString();
                    hWndURWPGSim2D   = Convert.ToInt32(cds.lpData.Substring(24, 10));
                    txtFileName.Text = cds.lpData.Substring(34);
                    if (txtFileName.Text.LastIndexOf('.') != (txtFileName.Text.Length - 4))
                    {    // 倒数第4个字符不是'.'则表明发送过来的文件名超长被截掉了一部分采用默认文件名
                        txtFileName.Text = Application.StartupPath + "\\test.wmv";
                    }
                    this.Location = new Point(x + (w - this.Width) / 2, y + (h - this.Height) / 2);
                }
                // 显示Screencast程序主窗口
                this.WindowState = FormWindowState.Normal;
                this.TopMost     = true;
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#12
0
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_HOTKEY:     //窗口消息-热键ID
                switch (m.WParam.ToInt32())
                {
                case AppHotKey.HotKeyID:         //热键ID
                    HotKeyPressedHandler();
                    break;

                default:
                    break;
                }
                break;

            case WM_DESTROY:                                    //窗口消息-销毁
                AppHotKey.UnRegKey(Handle, AppHotKey.HotKeyID); //销毁热键
                break;

            case WM_COPYDATA:
                COPYDATASTRUCT cds = new COPYDATASTRUCT();

                Type t = cds.GetType();

                cds = (COPYDATASTRUCT)m.GetLParam(t);

                string strResult = cds.lpData;

                string strType = cds.dwData.ToString();
                if (strResult == "GN_EXIT")
                {
                    Environment.Exit(0);
                }
                break;


            default:



                break;
            }
            base.WndProc(ref m);
        }
示例#13
0
        //捕获消息
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                //处理消息
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                string content = mystr.lpData;
                Console.WriteLine("hcc>>recvCopyData: ", content);
                this.label1.Text = this.label1.Text + content;
                break;

            default:
                break;
            }
            base.WndProc(ref m);
        }
示例#14
0
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                string receiveMsg = mystr.lpData;

                this.sendContent(receiveMsg);
                //MessageBox.Show(receiveMsg);
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
        /// <summary>
        /// window MSG for receiver below..
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void WindowMsg_recevierWndProc(object sender, MessageEventArgs e)
        {
            //
            Debug.WriteLine("receive crvc200 msg ..........{0}.", e.Message);
            if (e.Message == MatrixCMD.RVA200_MSG_Transfer)
            {
                COPYDATASTRUCT cds = new COPYDATASTRUCT();
                Type           t   = cds.GetType();
                cds = (COPYDATASTRUCT)Marshal.PtrToStructure(e.lParam, t);
                int chindex = cds.preWpl; //low param
                switch (cds.preWph)       //highcmd
                {
                case MatrixCMD.F_Ack:
                {
                    Debug.WriteLine("rva200 msg ack receive now.....................");
                    refreshAesLed();
                }
                break;

                case MatrixCMD.F_RdDevInfo:
                {
                    Debug.WriteLine("read msg device info now...................");

                    if (moduleType == Module_Type.Mod_RIO100)
                    {
                        lbDevName.Text = CMatrixData.matrixData.nameofRIODev();
                    }
                    else if (moduleType == Module_Type.Mod_RVC100)
                    {
                        lbDevName.Text = CMatrixData.matrixData.nameofRVCDev();
                    }
                    else
                    {
                        lbDevName.Text = CMatrixData.matrixData.nameofRVADev();
                    }

                    CMDSender.sendMSG_note_ChangeDevName(MatrixCMD.F_PCGetDeviceInfo, 0);        //stop rotating
                }
                break;
                }
            }
        }
        // 重载消息处理
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case USER_TEXT_MSG:
                // 用户文本消息
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                string str = mystr.lpData;
                Txb_Receiver.AppendText(str + "\n");

                break;

            default:
                // 系统处理其它消息
                base.DefWndProc(ref m);
                break;
            }
        }
示例#17
0
        private IntPtr MainWindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            switch (msg)
            {
            case WM_COPYDATA:
            {
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();

                COPYDATASTRUCT MyKeyboardHookStruct = (COPYDATASTRUCT)Marshal.PtrToStructure(lParam, typeof(COPYDATASTRUCT));
                this.ContentBox.Text = MyKeyboardHookStruct.lpData;
                break;
            }

            default:
            {
                break;
            }
            }
            return(IntPtr.Zero);
        }
示例#18
0
 protected override void DefWndProc( ref System.Windows.Forms.Message m )
 {
     switch ( m.Msg )
     {
         case Win32API.WM_COPYDATA:
             COPYDATASTRUCT mystr = new COPYDATASTRUCT();
             Type mytype = mystr.GetType();
             mystr = (COPYDATASTRUCT)m.GetLParam( mytype );
             String op = mystr.lpData;
             switch ( op )
             {
                 case SecuruStikMessageType.Show:
                     this.Visible = true;break;
                 case SecuruStikMessageType.Hiden:
                     this.Visible = false;break;
             }
             break;
         default:
             base.DefWndProc( ref m );
             break;
     }
 }
示例#19
0
 private void ContainerForm_DefWndProcEvent(ref Message msg)
 {
     switch (msg.Msg)
     {
     case WM_COPYDATA:
         COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
         Type           mytype = mystr.GetType();
         mystr = (COPYDATASTRUCT)msg.GetLParam(mytype);
         WndProcAgreement comm = StrToObject(mystr.lpData);
         if (comm.Identifier == WndProcAgreement_Identifiter.Activate)
         {
             this.ContainerForm.Activate();
         }
         else if (comm.Identifier == WndProcAgreement_Identifiter.Close)
         {
             this.Close();
         }
         else if (comm.Identifier == WndProcAgreement_Identifiter.FlipScreens)
         {
         }
         break;
     }
 }
示例#20
0
        /// <summary>
        /// 消息接受处理函数
        /// </summary>
        /// <param name="m"></param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT cds = new COPYDATASTRUCT();
                Type           t   = cds.GetType();
                cds = (COPYDATASTRUCT)m.GetLParam(t);
                string strResult = cds.dwData.ToString() + ":" + cds.lpData;

                //强制退出
                if (strResult == "1:SelfKill")
                {
                    this.notifyIcon1.Dispose();
                    System.Environment.Exit(0);
                }
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#21
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                var mystr  = new COPYDATASTRUCT();
                var myType = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(myType);
                if (!string.IsNullOrEmpty(mystr.IpData))
                {
                    if (_receviers.Count == 0 && _mainForm != null)
                    {
                        Console.WriteLine("timer控件开始计时");
                        timer1.Enabled = true;
                    }
                    _receviers.Add(mystr.IpData);
                }
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#22
0
 protected override void DefWndProc(ref System.Windows.Forms.Message m)//心跳命令
 {
     if (m.Msg == WM_COPYDATA)
     {
         COPYDATASTRUCT cds = new COPYDATASTRUCT();
         Type           t   = cds.GetType();
         cds = (COPYDATASTRUCT)m.GetLParam(t);
         string receiveInfo = cds.lpData;                                           //接收心跳命令
         if ((receiveInfo == "CmdServerStart") || (receiveInfo == "CmdServerStop")) //命令服务器——CmdServerStart启动——CmdServerStop停止 命令
         {
             //启动
             stu.strName     = "命令服务器";
             stu.strCmd      = receiveInfo;
             stu.strDateTime = DateTime.Now.ToString();
         }
         else if (receiveInfo == "监控头_1")//监控模块的心跳命令
         {
             for (int i = 0; i < MonOpt.Tree.IniMonitor.Count; i++)
             {
                 if ((MonOpt.Tree.IniMonitor[i].strName == receiveInfo) || (MonOpt.Tree.IniMonitor[i].strName == receiveInfo))
                 {
                     MonOpt.Tree.IniMonitor[i].strName  = receiveInfo;  //赋
                     MonOpt.Tree.IniMonitor[i].dateTine = DateTime.Now; //心跳时间
                     MonOpt.Tree.IniMonitor[i].MoState  = 1;
                 }
             }
         }
         else if ((receiveInfo == "") || (receiveInfo == ""))    //数据分析服务器心跳命令
         {
         }
     }
     else
     {
         base.DefWndProc(ref m);
     }
 }
示例#23
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case Win32API.WM_COPYDATA:
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                String op = mystr.lpData;
                switch (op)
                {
                case SecuruStikMessageType.Show:
                    this.Visible = true; break;

                case SecuruStikMessageType.Hiden:
                    this.Visible = false; break;
                }
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#24
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                string[] messColl = mystr.lpData.Split(new char[] { '=' });
                if (messColl[0] == "D00")
                {
                    //MessageBox.Show(mystr.lpData);
                    FileWorker.LogHelper.WriteLog("接受车底信息记录D00:" + mystr.lpData);
                    MessCommand messComm = Utils.ParseCarScanMess(messColl);

                    string jsonMess = messComm.toJson();
                    KafkaWorker.sendCarRecordMessage(jsonMess);
                    Task.Run(() => {
                        //在上传图片之前先进行压缩,保存到本地上,然后拿到压缩后的路径,进行FTP的上传
                        //string path = string.Format("/{0}/{1}", DateTime.Now.ToString("yyyy.MM.dd"), Path.GetFileName(messComm.body.vechicleInUvssPicpath));
                        FtpStatus ftpStatus = FtpHelper.upload(messColl[4], messComm.body.vechicleInUvssPicpath);
                        if (ftpStatus == FtpStatus.Success)
                        {
                            FileWorker.LogHelper.WriteLog("上传文件" + messColl[4] + "成功");
                        }
                        else if (ftpStatus == FtpStatus.Skipped)
                        {
                            FileWorker.LogHelper.WriteLog("上传文件" + messColl[4] + "在服务端已存在,跳过传输");
                        }
                        else
                        {
                            FileWorker.LogHelper.WriteLog("上传文件" + messColl[4] + "失败");
                            string txtPath = Application.StartupPath + "\\imageErrorMess.txt";
                            string txt     = string.Format("{0}|{1}", messColl[4], messComm.body.vechicleInUvssPicpath);
                            WriteLogFile(txtPath, txt);
                        }
                        //string txtPath = Application.StartupPath + "\\imageErrorMess.txt";
                        //string txt = string.Format("{0}|{1}", messComm.body.vechicleInUvssPicpath, path);
                        //WriteLogFile(txtPath, txt);
                    });
                }
                else if (messColl[0] == "D01")
                {
                    //FileWorker.LogHelper.WriteLog("基本工作状态D01:" + mystr.lpData);
                    //WorkingState work = Utils.ParseWorkMess(messColl);
                    //string jsonMess = work.toJson();
                    //KafkaTest.SendMessCommand(jsonMess);
                }
                else if (messColl[0] == "D02")
                {
                    FileWorker.LogHelper.WriteLog("第3方自定义功能D02:" + mystr.lpData);
                    if (messColl[1] == "0")
                    {
                        this.Close();
                    }
                    else if (messColl[1] == "1")
                    {
                        this.TopMost = true;
                    }
                    else if (messColl[1] == "2")    //D02 = 2 = N = EOF
                    {
                        //N 最大接入许可数量
                        //MessageOrder work = Utils.ParseMessOrder(messColl);
                        //上行,发送"U02=2=EOF"
                        SendResponOrder();
                    }
                    else
                    {
                    }
                }
                else
                {
                    FileWorker.LogHelper.WriteLog("未知命令:" + mystr.lpData);
                    //MessageBox.Show(mystr.lpData);
                }
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#25
0
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x004A)
            {
                try
                {
                    COPYDATASTRUCT cds = new COPYDATASTRUCT();
                    Type cdsType = cds.GetType();
                    cds = (COPYDATASTRUCT)m.GetLParam(cdsType);
                    uint flag = (uint)cds.dwData;
                    byte[] data = new byte[cds.cbData];
                    Marshal.Copy(cds.lpData, data, 0, cds.cbData);

                    if (flag == 1)
                    {
                        UpdateMessage(Encoding.Unicode.GetString(data));
                    }
                    else if (flag == 2)
                    {
                        int size = Marshal.SizeOf(typeof(ROOM));
                        IntPtr ptr = Marshal.AllocHGlobal(size);
                        Marshal.Copy(data, 0, ptr, size);
                        ROOM room = (ROOM)Marshal.PtrToStructure(ptr, typeof(ROOM));
                        Marshal.FreeHGlobal(ptr);

                        UpdatePlayerList(room);

                        this.panelInRoom.Visible = true;
                        this.panelOutRoom.Visible = false;
                    }
                    else if (flag == 3)
                    {
                        int size = Marshal.SizeOf(typeof(ADVLIST));
                        IntPtr ptr = Marshal.AllocHGlobal(size);
                        Marshal.Copy(data, 0, ptr, size);
                        ADVLIST advList = (ADVLIST)Marshal.PtrToStructure(ptr, typeof(ADVLIST));
                        Marshal.FreeHGlobal(ptr);

                        UpdateAdvList(advList);

                        this.panelInRoom.Visible = false;
                        this.panelOutRoom.Visible = true;

                        if (this.checkBoxAutoJoin.Checked)
                        {
                            for (int i = 0; i < advList.count; ++i)
                            {
                                if (advList.adv[i].title.IndexOf(this.textBoxTitleContain.Text, StringComparison.OrdinalIgnoreCase) >= 0 &&
                                    advList.adv[i].map.IndexOf(this.textBoxMapContain.Text, StringComparison.OrdinalIgnoreCase) >= 0)
                                {
                                    JoinGame(advList.adv[i].title);
                                }
                            }
                        }
                    }
                    else if (flag == 4)
                    {
                        //W3_NOTHING 0
                        //W3_LOBBY 1
                        //W3_FAKE 2 // i don't know what is this...
                        //W3_LOADING 3
                        //W3_INGAME 4
                        //W3_PAUSEDGAME 6
                        int backupGameState = GameState;
                        GameState = BitConverter.ToInt32(data, 0);
                        if (backupGameState == 1 && GameState == 0) // 从房间中退出
                        {
                            UpdateMessage("[已离开房间]");
                            ActiveWC3();
                        }
                        else if (GameState == 1) // 进入房间
                        {
                            this.listBoxMessage.Items.Clear();
                            this.panelInRoom.Visible = true;
                            this.panelOutRoom.Visible = false;
                            this.checkBoxAutoJoin.Checked = false;
                            this.checkBoxAutoTry.Checked = false;
                            ActiveWC3();

                        }
                        else if (GameState == 3) // 开始载入
                        {
                            UpdateMessage("[已开始载入]");
                        }
                        else if (GameState == 4) // 开始游戏
                        {
                            UpdateMessage("[已开始游戏]");
                            ActiveWC3();
                        }
                    }
                }
                catch (Exception e)
                {
                    //MessageBox.Show(e.ToString());
                }
            }
            else if (m.Msg == 0x0112)
            {
                if (m.WParam.ToInt32() == 0x123)
                {
                    IntPtr hMenu = GetSystemMenu(this.Handle, false);
                    CheckMenuItem(hMenu, 0x123, this.TopMost ? (uint)0 : 0x00000008);
                    this.TopMost = !this.TopMost;
                }
                else if (m.WParam.ToInt32() == 0x124)
                {
                    System.Diagnostics.Process.Start("http://blog.nxun.com/2011/war3-bn-helper/");
                }
                else
                {
                    base.WndProc(ref m);
                }
            }
            else
            {
                base.WndProc(ref m);
            }
        }
示例#26
0
        protected override void WndProc(ref Message ThisMsg)
        {
            if (ThisMsg.Msg == WM_COPYDATA)
            {
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)ThisMsg.GetLParam(mytype);

                string msg   = GetMPCCommand((MPCAPI_COMMAND)mystr.dwData);
                string param = GetMPCCommandParamStr((MPCAPI_COMMAND)mystr.dwData, mystr.lpData);

                Debug.WriteLine(msg + " " + param);

                MPCAPI_COMMAND command = (MPCAPI_COMMAND)mystr.dwData.ToInt32();

                switch (command)
                {
                case MPCAPI_COMMAND.CMD_CONNECT:
                    MediaPlayerHandle = Convert.ToInt32(mystr.lpData);
                    NotifyConnected();
                    break;

                case MPCAPI_COMMAND.CMD_STATE:
                    MPC_LOADSTATE loadState = (MPC_LOADSTATE)int.Parse(mystr.lpData);
                    switch (loadState)
                    {
                    case MPC_LOADSTATE.MLS_CLOSED:
                        VideoFileName         = "";
                        VideoDurationMs       = 0;
                        VideoCurrentlyPlaying = false;
                        VideoCurrentlyOpen    = false;
                        NotifyClosed();
                        break;

                    case MPC_LOADSTATE.MLS_LOADING:
                        NotifyLoading();
                        break;

                    case MPC_LOADSTATE.MLS_LOADED:
                        VideoCurrentlyOpen = true;
                        PausedPositionMs   = 0;
                        NotifyLoaded();
                        // SendGetNowPlaying(); // request title info
                        break;

                    case MPC_LOADSTATE.MLS_CLOSING:
                        VideoCurrentlyPlaying = false;
                        NotifyClosing();
                        break;

                    default:
                        break;
                    }
                    break;

                case MPCAPI_COMMAND.CMD_PLAYMODE:
                    MPC_PLAYSTATE playState = (MPC_PLAYSTATE)int.Parse(mystr.lpData);
                    switch (playState)
                    {
                    case MPC_PLAYSTATE.PS_PLAY:
                        VideoCurrentlyPlaying  = true;
                        LastReportedPositionMs = -1;         // invalidate the reported position; paused position is better for now
                        ResyncTime();
                        NotifyPlay();
                        break;

                    case MPC_PLAYSTATE.PS_PAUSE:
                        PausedPositionMs      = CurrentPositionMs;    // set the paused position
                        VideoCurrentlyPlaying = false;
                        SendGetCurrentPosition();
                        NotifyPause();
                        break;

                    case MPC_PLAYSTATE.PS_STOP:
                        VideoCurrentlyPlaying = false;
                        PausedPositionMs      = 0;
                        NotifyStop();
                        break;

                    case MPC_PLAYSTATE.PS_UNUSED:
                        break;

                    default:
                        break;
                    }
                    break;

                case MPCAPI_COMMAND.CMD_NOWPLAYING:
                    // Par 1 : title
                    // Par 2 : author
                    // Par 3 : description
                    // Par 4 : complete filename (path included)
                    // Par 5 : duration in seconds
                    string[] parms    = mystr.lpData.Split('|');
                    int      duration = (int)(double.Parse(parms[4]) * 1000);
                    VideoFileName   = System.IO.Path.GetFileName(parms[3]);
                    VideoDurationMs = duration;
                    NotifyNowPlaying(parms[0], parms[1], parms[2], parms[3], duration);
                    ResyncTime();
                    break;

                case MPCAPI_COMMAND.CMD_LISTSUBTITLETRACKS:
                    break;

                case MPCAPI_COMMAND.CMD_LISTAUDIOTRACKS:
                    break;

                case MPCAPI_COMMAND.CMD_CURRENTPOSITION:
                {
                    try
                    {
                        int currentPos = int.Parse(mystr.lpData) * 1000;
                        ContinueResync(currentPos);
                    }
                    catch
                    {
                        LastReportedPositionMs = (int)(double.Parse(mystr.lpData) * 1000);
                        LastReportedDateTime   = DateTime.UtcNow;
                        PausedPositionMs       = LastReportedPositionMs;
                        needToDoResyncs        = false;
                    }
                }
                break;

                case MPCAPI_COMMAND.CMD_NOTIFYSEEK:
                {
                    try
                    {
                        int currentPos = int.Parse(mystr.lpData) * 1000;
                        LastReportedDateTime   = DateTime.UtcNow;
                        LastReportedPositionMs = currentPos;
                        PausedPositionMs       = currentPos;
                        ResyncTime();
                    }
                    catch
                    {
                        LastReportedPositionMs = (int)(float.Parse(mystr.lpData) * 1000);
                        LastReportedDateTime   = DateTime.UtcNow;
                        PausedPositionMs       = LastReportedPositionMs;
                        needToDoResyncs        = false;
                    }
                }
                break;

                case MPCAPI_COMMAND.CMD_NOTIFYENDOFSTREAM:
                    break;

                case MPCAPI_COMMAND.CMD_PLAYLIST:
                    break;

                case MPCAPI_COMMAND.CMD_DISCONNECT:
                    VideoFileName         = "";
                    VideoDurationMs       = 0;
                    VideoCurrentlyPlaying = false;
                    VideoCurrentlyOpen    = false;
                    MediaPlayerHandle     = 0;
                    NotifyDisconnected();
                    break;

                default:
                    Debug.WriteLine("Unhandled Command");
                    break;
                }

                return;
            }

            base.WndProc(ref ThisMsg);
        }
示例#27
0
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x004A)
            {
                COPYDATASTRUCT cds  = new COPYDATASTRUCT();
                Type           type = cds.GetType();
                cds = (COPYDATASTRUCT)m.GetLParam(type);

                //无效信息拦截
                if (cds.dwData != 0 && cds.dwData != 2)
                {
                    return;
                }

                if (tb_MsgBox.Text.Length > 10000)
                {
                    tb_MsgBox.Text = string.Empty;
                }

                if (cds.dwData == 0)
                {
                    //不再是传值的方式了,通过文件的方式,所以这里注释
                    ////接受到的群消息
                    //var content = Marshal.PtrToStringAnsi(cds.lpData);

                    ////处理接受到的消息
                    //new HandleReceiveMessage().HandleMessage(content, _log);

                    //tb_MsgBox.Text += content;

                    //回复消息
                    //var chatroomId = content.Split(new string[] { "|&|" }, StringSplitOptions.RemoveEmptyEntries)[0];
                    //ChatRoomMember.SendRoomAtMsg(Pid, chatroomId);

                    #region 注释
                    //拆分字符串并拼json
                    //var arrContent = content.Split(new string[] { "|&|" }, StringSplitOptions.RemoveEmptyEntries);

                    //var center = ConfigurationManager.AppSettings["MessageCenter"];

                    //如果不是文字、图片消息,就直接返回
                    //if (arrContent[3].IndexOf("no") > -1)
                    //{
                    //    return;
                    //}

                    //Task.Run(() =>
                    //{
                    //    string msgContent = "";
                    //    if (arrContent[3].IndexOf("image") > -1)
                    //    {
                    //        string u1 = GetImageBaseDir() + arrContent[4];
                    //        u1 = u1.Substring(0, u1.LastIndexOf(".dat") + 4);//防止后面有乱码
                    //        try
                    //        {
                    //            _log.Info(u1 + "\r\n");
                    //            解密图片
                    //            msgContent = DecryptImageHelper.Decrypt(u1);
                    //        }
                    //        catch (Exception ex)
                    //        {
                    //            _log.Error("解密图片时候报错:" + ex.Message + u1);
                    //        }
                    //    }
                    //    else
                    //    {
                    //        msgContent = arrContent[2];
                    //    }

                    //    var jsonObj = new
                    //    {
                    //        GroupId = arrContent[0],
                    //        MemberId = arrContent[1],
                    //        MsgTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff"),
                    //        MsgContent = msgContent,
                    //        MsgType = arrContent[3]
                    //    };

                    //    var jsonContent = JsonSerializeHelper.JsonSerialize(jsonObj);
                    //    显示日志
                    //    tb_MsgBox.Text += jsonContent;
                    //    发送到数据接口
                    //    new WebHelper().PostMessage(center, jsonContent, _log);
                    //    调用微信群组接口
                    //    ChatRoomMember.GetChatRoomUser(Pid, jsonObj.GroupId);
                    //});
                    #endregion
                }
                else if (cds.dwData == 2)
                {
                    //获取到的群成员列表
                    var content = Marshal.PtrToStringUni(cds.lpData);
                    try
                    {
                        //群组信息与成员列表切分开
                        var chatRoomIdandMember = content.Split(new string[] { "_&&_" }, StringSplitOptions.RemoveEmptyEntries);
                        //群组id
                        var chatRoomId = chatRoomIdandMember[0].Split(new string[] { "|&|" }, StringSplitOptions.RemoveEmptyEntries)[0];
                        _log.Debug("响应一次微信群组调用:" + chatRoomId);

                        //群组名称
                        var chatRoomName = chatRoomIdandMember[0].Split(new string[] { "|&|" }, StringSplitOptions.RemoveEmptyEntries)[1];
                        //群的成员列表。
                        var           chatRoomMembers = chatRoomIdandMember[1].Split(new string[] { "_&_" }, StringSplitOptions.RemoveEmptyEntries);
                        List <object> memberList      = new List <object>();
                        chatRoomMembers.ToList().ForEach(p =>
                        {
                            var member = p.Split(new string[] { "|&|" }, StringSplitOptions.None);
                            if (member.Length == 3)
                            {
                                memberList.Add(new { MemberId = member[0], MemberNickName = member[2], MemberAreas = "", MemberNumber = member[1], MemberGroupName = member[2] });
                            }
                        });

                        var JsonObj    = new { GroupId = chatRoomId, GroupName = chatRoomName, MemberList = memberList };
                        var JsonString = JsonSerializeHelper.JsonSerialize(JsonObj);

                        tb_MsgBox.Text += JsonString;

                        var center = ConfigurationManager.AppSettings["ChatRoomMemberListCenter"];

                        Task.Run(() =>
                        {
                            new WebHelper().PostMessage(center, JsonString, _log);
                        });
                    }
                    catch (Exception ex)
                    {
                        _log.Error("获取到的群成员列表,请求过程中程序报错:" + ex.Message + "content为:" + content);
                    }
                }
            }
            else
            {
                base.WndProc(ref m);
            }
        }
示例#28
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
                case WM_COPYDATA:
                    COPYDATASTRUCT mystr = new COPYDATASTRUCT();
                    Type mytype = mystr.GetType();
                    mystr = (COPYDATASTRUCT)m.GetLParam(mytype);

                    //MessageBox.Show(mystr.lpData);
                    Jid openJid = new Jid(mystr.lpData, XmppCon.Server,null);
                    //MessageBox.Show(openJid.ToString());

                    Friend item=null;
                    if (listView_fd.Rosters.ContainsKey(openJid.Bare))
                    {
                        item = listView_fd.Rosters[openJid.Bare];
                        if (!Util.ChatForms.ContainsKey(item.Ritem.Jid.Bare))
                        {
                            try
                            {
                                string nickName = listView_fd.GetFriendNickName(openJid.Bare);
                                ChatFromMsg chat = new ChatFromMsg(openJid, XmppCon, nickName);
                                chat.UpdateFriendOnline(item.IsOnline);//设置好友在线状态
                                chat.Show();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message);
                            }
                        }
                        else
                        {
                            try
                            {
                                ChatFromMsg chatform = Util.ChatForms[item.Ritem.Jid.Bare] as ChatFromMsg;
                                chatform.WindowState = FormWindowState.Normal;
                                chatform.Activate();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message);
                            }
                        }
                    }
                    else
                    {
                        if (!Util.ChatForms.ContainsKey(openJid.Bare))
                        {
                            listView_fd.UpdateFriendFlicker(openJid.Bare);
                            string nickName = listView_fd.GetFriendNickName(openJid.Bare);
                            ChatFromMsg chat = new ChatFromMsg(openJid, XmppCon, nickName);

                            Friend friend;
                            if (listView_fd.Rosters.ContainsKey(openJid.Bare))
                            {
                                friend = listView_fd.Rosters[openJid.Bare];
                            }
                            else
                            {
                                friend = null;
                            }

                            if (friend != null)
                            {
                                chat.UpdateFriendOnline(listView_fd.Rosters[openJid.Bare].IsOnline);
                            }

                            if (msgBox.ContainsKey(openJid.Bare.ToString()))
                            {
                                chat.FristMessage(msgBox[openJid.Bare.ToString()]);
                                msgBox.Remove(openJid.Bare.ToString());
                            }
                            try
                            {
                                chat.Show();
                            }
                            catch (Exception)
                            {

                            }

                        }
                        else
                        {
                            try
                            {
                                ChatFromMsg chatform = Util.ChatForms[openJid.Bare.ToString()] as ChatFromMsg;
                                chatform.WindowState = FormWindowState.Normal;
                                chatform.Activate();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("打开窗体错误:"+ex.Message);
                            }
                        }
                    }

                    break;
                default:
                    base.DefWndProc(ref m);
                    break;
            }
        }
示例#29
0
文件: MainForm.cs 项目: jzChia/demo
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
            {
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                TransferTask currentTask = transferTaskListControl1.GetTaskByID(new Guid(mystr.lpData.Substring(0, mystr.cbData)));
                if (currentTask != null)
                {
                    transferTaskListControl1.CompleteTask(currentTask);

                    //写入元数据
                    TemplateMetaData metaData;
                    MetaDts.TryGetValue(currentTask.ID, out metaData);

                    if (currentTask.Type == TaskType.Upload)
                    {
                        switch (metaData.MetaDataType)
                        {
                        case EnumMetaDataType.Raster:
                        {
                            Demo.Entities.RasterLayer rstLyr = metaData.LayerData as Demo.Entities.RasterLayer;
                            rstLyr.LAYERSIZE = (long)currentTask.Size;
                            if (Demo.Entities.RasterLayer.ImportRasterIndex(rstLyr) == 1)
                            {
                                //MessageBox.Show("元数据保存成功!");
                            }
                            else
                            {
                                MessageBox.Show("元数据保存失败!");
                            }
                            break;
                        }

                        case EnumMetaDataType.Features:
                        {
                            VectorLayer vecLyr = metaData.LayerData as VectorLayer;
                            vecLyr.LAYERSIZE = (long)currentTask.Size;
                            if (VectorLayer.ImportVectorIndex(vecLyr) == 1)
                            {
                                //MessageBox.Show("元数据保存成功!");
                            }
                            else
                            {
                                MessageBox.Show("元数据保存失败!");
                            }
                            break;
                        }

                        case EnumMetaDataType.Files:
                        {
                            FileLayer fileLyr = metaData.LayerData as FileLayer;
                            fileLyr.LAYERSIZE = (long)currentTask.Size;
                            if (FileLayer.ImportFileIndex(fileLyr) == 1)
                            {
                                //MessageBox.Show("元数据保存成功!");
                            }
                            else
                            {
                                MessageBox.Show("元数据保存失败!");
                            }
                            break;
                        }
                        }
                    }
                    else
                    {
                    }
                }
                break;
            }

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#30
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                var musicName = Path.GetFileName(mystr.lpData);
                var name      = musicName.Split('.');
                if (mystr.type == 0)
                {
                    string       str = string.Format("有人分享了一首:{0} 给你,要去听听吗?", name[0]);
                    DialogResult dr  = MessageBox.Show(str, "音乐分享", MessageBoxButtons.YesNo);

                    if (dr == DialogResult.Yes)
                    {
                        try
                        {
                            ProcessStartInfo startInfo = new ProcessStartInfo();
                            startInfo.FileName    = @"C:\Users\ychi\source\repos\music\musicApp\musicApp\bin\Debug\musicApp.exe";
                            startInfo.Arguments   = mystr.lpData;
                            startInfo.WindowStyle = ProcessWindowStyle.Normal;
                            Process.Start(startInfo);
                        }
                        catch (Exception ex)
                        {
                            throw;
                        }
                    }
                    else if (dr == DialogResult.No)
                    {
                        return;
                    }
                }
                else if (mystr.type == 1)
                {
                    string       str = string.Format("有人分享视频:{0} 给你,要去看看吗?", name[0]);
                    DialogResult dr  = MessageBox.Show(str, "视频分享", MessageBoxButtons.YesNo);
                    if (dr == DialogResult.Yes)
                    {
                        try
                        {
                            ProcessStartInfo startInfo = new ProcessStartInfo();
                            startInfo.FileName    = @"C:\Users\ychi\source\repos\music\musicApp\musicApp\bin\Debug\musicApp.exe";
                            startInfo.Arguments   = mystr.lpData + " " + 1;
                            startInfo.WindowStyle = ProcessWindowStyle.Normal;
                            Process.Start(startInfo);
                        }
                        catch (Exception ex)
                        {
                            throw;
                        }
                    }
                    else if (dr == DialogResult.No)
                    {
                        return;
                    }
                }

                //      chatListBox.Items.Add(content + "\r\n");
                //     this.textBox1.Text = mystr.lpData;
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#31
0
        protected override void WndProc(ref Message m)
        {
            // Listen for operating system messages.
              switch (m.Msg)
              {
            case WM_USER:
              //MessageBox.Show("Message recieved: " + m.WParam + " – " + m.LParam);
              break;
            case WM_COPYDATA:
              COPYDATASTRUCT mystr = new COPYDATASTRUCT();
              Type mytype = mystr.GetType();
              mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
              if (mystr.lpData.Equals("exit;"))
              {
                sendmsgclose = true;
                Application.Exit();
              }
              // MessageBox.Show(mystr.lpData);
              Splashtext.Text = mystr.lpData;
              Splashtext.Left = (this.Width / 2) - (Splashtext.Width / 2);
              Splashtext.Top = (this.Height / 2) - (Splashtext.Height / 2);

              break;
              }
              base.WndProc(ref m);
        }
示例#32
0
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x004A)
            {
                try
                {
                    COPYDATASTRUCT cds     = new COPYDATASTRUCT();
                    Type           cdsType = cds.GetType();
                    cds = (COPYDATASTRUCT)m.GetLParam(cdsType);
                    uint   flag = (uint)cds.dwData;
                    byte[] data = new byte[cds.cbData];
                    Marshal.Copy(cds.lpData, data, 0, cds.cbData);

                    if (flag == 1)
                    {
                        UpdateMessage(Encoding.Unicode.GetString(data));
                    }
                    else if (flag == 2)
                    {
                        int    size = Marshal.SizeOf(typeof(ROOM));
                        IntPtr ptr  = Marshal.AllocHGlobal(size);
                        Marshal.Copy(data, 0, ptr, size);
                        ROOM room = (ROOM)Marshal.PtrToStructure(ptr, typeof(ROOM));
                        Marshal.FreeHGlobal(ptr);

                        UpdatePlayerList(room);

                        this.panelInRoom.Visible  = true;
                        this.panelOutRoom.Visible = false;
                    }
                    else if (flag == 3)
                    {
                        int    size = Marshal.SizeOf(typeof(ADVLIST));
                        IntPtr ptr  = Marshal.AllocHGlobal(size);
                        Marshal.Copy(data, 0, ptr, size);
                        ADVLIST advList = (ADVLIST)Marshal.PtrToStructure(ptr, typeof(ADVLIST));
                        Marshal.FreeHGlobal(ptr);

                        UpdateAdvList(advList);

                        this.panelInRoom.Visible  = false;
                        this.panelOutRoom.Visible = true;

                        if (this.checkBoxAutoJoin.Checked)
                        {
                            for (int i = 0; i < advList.count; ++i)
                            {
                                if (advList.adv[i].title.IndexOf(this.textBoxTitleContain.Text, StringComparison.OrdinalIgnoreCase) >= 0 &&
                                    advList.adv[i].map.IndexOf(this.textBoxMapContain.Text, StringComparison.OrdinalIgnoreCase) >= 0)
                                {
                                    JoinGame(advList.adv[i].title);
                                }
                            }
                        }
                    }
                    else if (flag == 4)
                    {
                        //W3_NOTHING 0
                        //W3_LOBBY 1
                        //W3_FAKE 2 // i don't know what is this...
                        //W3_LOADING 3
                        //W3_INGAME 4
                        //W3_PAUSEDGAME 6
                        int backupGameState = GameState;
                        GameState = BitConverter.ToInt32(data, 0);
                        if (backupGameState == 1 && GameState == 0) // 从房间中退出
                        {
                            UpdateMessage("[已离开房间]");
                            ActiveWC3();
                        }
                        else if (GameState == 1) // 进入房间
                        {
                            this.listBoxMessage.Items.Clear();
                            this.panelInRoom.Visible      = true;
                            this.panelOutRoom.Visible     = false;
                            this.checkBoxAutoJoin.Checked = false;
                            this.checkBoxAutoTry.Checked  = false;
                            ActiveWC3();
                        }
                        else if (GameState == 3) // 开始载入
                        {
                            UpdateMessage("[已开始载入]");
                        }
                        else if (GameState == 4) // 开始游戏
                        {
                            UpdateMessage("[已开始游戏]");
                            ActiveWC3();
                        }
                    }
                }
                catch (Exception e)
                {
                    //MessageBox.Show(e.ToString());
                }
            }
            else if (m.Msg == 0x0112)
            {
                if (m.WParam.ToInt32() == 0x123)
                {
                    IntPtr hMenu = GetSystemMenu(this.Handle, false);
                    CheckMenuItem(hMenu, 0x123, this.TopMost ? (uint)0 : 0x00000008);
                    this.TopMost = !this.TopMost;
                }
                else if (m.WParam.ToInt32() == 0x124)
                {
                    System.Diagnostics.Process.Start("http://blog.nxun.com/2011/war3-bn-helper/");
                }
                else
                {
                    base.WndProc(ref m);
                }
            }
            else
            {
                base.WndProc(ref m);
            }
        }