WPF获取窗口句柄,并向窗口结构性发送文本内容

发送端:

  using System.Runtime.InteropServices;   //DllImport

 

        /*发送消息的结构体*/
        [DllImport("User32.dll", EntryPoint = "SendMessage")]
        private static extern int SendMessage(
            IntPtr hWnd,
            int Msg,
            int wParam,
            ref COPYDATASTRUCT lParam     //通过结构发送,需要接收窗口接收程序
            //string lParam           //通过字符串发送窗口自动接收
        );

  /// <summary>
        /// 获取窗口句柄,发送信息
        /// </summary>
        private void Sent_Msg()
        {

            /*C#进程通信(Server): 主进程的tilte*/
            IntPtr WINDOW_HANDLER = FindWindow(null, KeyWord.Text);//参数:窗口的类,窗口的标题:微信
            if (WINDOW_HANDLER == IntPtr.Zero)
            {
                Result.Text = string.Format("找不到{0}的句柄:", KeyWord.Text);
            }
            else
            {
                int age = 12;
                byte[] sarr = System.Text.Encoding.Default.GetBytes(SentWord.Text);
                int len = sarr.Length;
                COPYDATASTRUCT cds;
                cds.dwData = (IntPtr)age;
                cds.lpData = SentWord.Text;
                cds.cbData = len + 1;
                SendMessage(WINDOW_HANDLER, 74, 0, ref cds);     //通过结构发送

            }
        }

接收端:

  using System.Runtime.InteropServices;

        const int WM_COPYDATA = 0x004A;
        public struct COPYDATASTRUCT
        {
            public int PtrdwData;
            public int cbData;
            [MarshalAs(UnmanagedType.LPStr)]
            public string lpData;
        }

        //接收进程间传递的消息
        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);
                    ResponseWord.Text = mystr.lpData;
                    break;
                default:
                    base.DefWndProc(ref m);
                    break;
            }


        }

 

posted @ 2020-11-28 14:41  棂信  阅读(308)  评论(0编辑  收藏  举报