111,119
社区成员
发帖
与我相关
我的任务
分享
using System.Runtime.InteropServices;
const int WM_COPYDATA = 0x004A;
[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(
int hWnd, // handle to destination window
int Msg, // message
int wParam, // first message parameter
ref COPYDATASTRUCT lParam // second message parameter
);
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern int FindWindow(string lpClassName, string
lpWindowName);
public int SendMessageToWin(string winFormName,string Sendstr)
{
int WINDOW_HANDLER = FindWindow(null, @winFormName);
if (WINDOW_HANDLER != 0)
{
byte[] sarr = System.Text.Encoding.Default.GetBytes(@Sendstr);
int len = sarr.Length;
COPYDATASTRUCT cds;
cds.dwData = (IntPtr)13579;
cds.lpData = this.textBox1.Text;
cds.cbData = len + 1;
return SendMessage(WINDOW_HANDLER, WM_COPYDATA, 0, ref cds);
}
else
{
return 0;
}
}
public struct COPYDATASTRUCT
{
public IntPtr dwData;
public int cbData;
[MarshalAs(UnmanagedType.LPStr)]
public string lpData;
}