我尝试将消息从一个应用程序发送到另一个应用程序。
我认为代码可以正常运行,不是问题所在,但是文本发送到错误的文本框吗?我看着Spy ++,在应用程序2中有两个文本框,但是对于这两个文本框,我从Spy ++返回相同的类--->“ WindowsForms10.EDIT.app.0.141b42a_r13_ad1” ...
我的主要问题是,为什么两个文本框都具有相同的“类”,我该如何解决?
Integer.MAX_VALUE - 2
//工作人员...
private const int WM_SETTEXT = 0x000C;
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("User32.dll")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindows);
[DllImport("User32.dll")]
private static extern Int32 SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, StringBuilder lParam);
private void button4_Click(object sender, EventArgs e)
{
IntPtr hWnd = FindWindow(null, "Form1");
if (!hWnd.Equals(IntPtr.Zero))
{
IntPtr edithWnd = FindWindowEx(hWnd, IntPtr.Zero, "WindowsForms10.EDIT.app.0.141b42a_r13_ad1", null);
if (!edithWnd.Equals(IntPtr.Zero))
SendMessage(edithWnd, WM_SETTEXT, IntPtr.Zero, new StringBuilder("Hello World!"));
}
}