c#下使用WM_COPYDATA


 
        [DllImport("User32.dll")]
        public static extern int SendMessage(IntPtr hwnd, int msg, int wParam, ref COPYDATASTRUCT lParam);
 
 
        public const int WM_COPYDATA = 0x004A;
 
        /// <summary>
        /// WM_COPYDATA消息,進程間傳輸信息專用結構
        /// </summary>
        public struct COPYDATASTRUCT
        {
            public IntPtr dwData;//類型必須IntPtr,用來自動適應32位 64位
            public int cbData;
 
            public Intptr lpData;
 
        }

發送消息:

                string msg = "asdf";
                byte[] sarr = Encoding.Default.GetBytes(msg);
                COPYDATASTRUCT cds;
                cds.dwData = IntPtr.Zero;                                   //可以是任意值
                cds.cbData = sarr.Length;                               //指定lpData內存區域的字節數
                cds.lpData = Marshal.UnsafeAddrOfPinnedArrayElement(sarr,0);  //發送給目標窗口所在進程的數據
 
                SendMessage(hdl, WM_COPYDATA, 0, ref cds);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM