110,571
社区成员
发帖
与我相关
我的任务
分享
发送端
public struct CopyDataStruct
{
public IntPtr dwData;
public int cbData;
[MarshalAs(UnmanagedType.LPStr)]
public string lpData;
}
[DllImport("User32.dll")]
public static extern int SendMessage(int hWnd, uint Msg, int wParam, ref CopyDataStruct lParam);
private const int WM_COPYDATA = 0x004A;
[DllImport("User32.dll")]
private static extern int FindWindow(string lpClassName, string lpWindowName);
private void button1_Click(object sender, EventArgs e)
{
string strURL = "http://hi.csdn.net/zenghd";
CopyDataStruct cds;
cds.dwData = (IntPtr)1;
cds.lpData = strURL;
cds.cbData = System.Text.Encoding.Default.GetBytes(strURL).Length + 1;
SendMessage(FindWindow(null,"B" ), WM_COPYDATA, 0, ref cds); // 这里要修改成接收窗口的标题
}
接收端:
public struct CopyDataStruct
{
public IntPtr dwData;
public int cbData;
[MarshalAs(UnmanagedType.LPStr)]
public string lpData;
}
private const int WM_COPYDATA = 0x004A;
protected override void WndProc(ref System.Windows.Forms.Message e)
{
if (e.Msg == WM_COPYDATA)
{
CopyDataStruct cds = (CopyDataStruct)e.GetLParam(typeof(CopyDataStruct));
MessageBox.Show(cds.lpData);
}
base.WndProc(ref e);
}