//WM_COPYDATA消息所要求的数据结构 public struct CopyDataStruct
{ public IntPtr dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; }
扫描二维码关注公众号,回复:
6609895 查看本文章
public const int WM_COPYDATA = 0x004A ; //通过窗口的标题来查找窗口的句柄 [DllImport( "User32.dll" , EntryPoint = "FindWindow" )] private static extern int FindWindow(string lpClassName, string lpWindowName); //在DLL库中的发送消息函数 [DllImport( "User32.dll" , EntryPoint = "SendMessage" )] private static extern int SendMessage ( int hWnd, // 目标窗口的句柄 int Msg, // 在这里是WM_COPYDATA int wParam, // 第一个消息参数 ref CopyDataStruct lParam // 第二个消息参数 ); private void button1_Click(object sender, EventArgs e) { //将文本框中的值, 发送给接收端 string strURL = txtImpinj.Text; CopyDataStruct cds; cds.dwData = (IntPtr) 1 ; //这里可以传入一些自定义的数据,但只能是4字节整数 cds.lpData = strURL; //消息字符串 cds.cbData = System.Text.Encoding.Default.GetBytes(strURL).Length + 1 ; //注意,这里的长度是按字节来算的 SendMessage(FindWindow( null , "接收端" ), WM_COPYDATA, 0 , ref cds); // 这里要修改成接收窗口的标题“接收端” //this.Close(); } |