将文本插入另一个应用程序的文本框中

如何使用C#或C ++将文本插入另一个应用程序的文本框中? 我很久以前这样做了,似乎记得有关使用应用程序HWND的一些事情。 但是,由于对应用程序的每个实例的更改,我觉得我不记得完整的故事。 我是否以某种方式获取正在运行的应用程序列表,提取我想要的那个,从中获取HWND然后……嗯….那么什么? 🙂

使用FindWindowEx()查找句柄(HWND),然后使用SendMessage()发送WM_SETTEXT消息

使用FindWindowEx时,您需要首先使用其类名来查找主窗口句柄。 然后,您需要找到文本框所在容器的句柄,调用FindWindowEx,传递父窗口(窗口)的句柄以及容器的类名。 您需要重复此操作,直至到达文本框。 您可以使用一个名为Spy ++的工具,该工具默认安装在Visual Studio中,以检查目标应用程序并找出容器的层次结构(所有对象在API中实际上都称为窗口,但我将它们称为容器,而不是顶部 -级别窗口)及其类名。

然后是SendMessage(),WM_SETTEXT

你可以使用ClipBoard类来实现同样的目的

您可以将键击发送到文本字段,而不是定位特定应用。

private void button1_Click(object sender, EventArgs e) { System.Threading.Thread.Sleep(5000); SendKeys.Send(send_text); private void textBox1_TextChanged(object sender, EventArgs e) { send_text = textBox1.Text; }