0
對不起,我的英語很差。 我使用將字符串轉換爲IntPtr
COPYDATASTRUCT cd = new COPYDATASTRUCT();
cd.dwData = 0;
cd.lpData = Marshal.StringToHGlobalAuto(Msg).ToInt32();
cd.cbData = Msg.Length;
Marshal.StringToHGlobalAuto(Msg);
,並使用SendMessage函數方法 用它發送到另一個窗口,當我收到它,並宣讀的IntPtr作爲字符串轉換字符串IntPtr的
COPYDATASTRUCT CD = (COPYDATASTRUCT)Marshal.PtrToStructure(lParam, typeof(COPYDATASTRUCT));
byte[] B = new byte[CD.cbData];
IntPtr lpData = new IntPtr(CD.lpData);
string temp = Marshal.PtrToStringUni(lpData);
Marshal.Copy(lpData, B, 0, CD.cbData);
string strData = Encoding.Default.GetString(B);
我收到這個數據 中號\ 0S \ 0G \ 0 \ 0 @ \ 01 \ 0 | \ 01 \ 0 | \ 0C \ 0:\ 0 \\ 0U \ 0 \ 0E \ 0R \ 0 \ 0 \\ 0F \ 0 \ 0A \0升\ 0 \ 0a \ 0
當我使strData.Replace(「\ 0」,「」)
我收到我的消息,但它被截斷。 ! 味精@ 1 | 1 | C:\用戶\ f.alsa
原始消息是味精@ 1 | 1 | C:\用戶\ f.alsayyed \桌面\ File.ktb