如何使用 C# 或 C++ 将文本插入另一个应用程序的文本框中?我很久以前做过这个,似乎记得一些关于使用应用程序 HWND 的事情。但是由于应用程序的每个实例都发生了这种变化,我觉得我不记得完整的故事了。我是否会以某种方式获取正在运行的应用程序列表,提取我想要的应用程序,从中获取 HWND,然后......嗯......然后呢?:)
问问题
21401 次
4 回答
16
使用FindWindowEx()查找句柄 (HWND),然后使用SendMessage()发送WM_SETTEXT消息
使用 FindWindowEx 时,您需要首先使用其类名找到主窗口句柄。然后,您将需要找到文本框所在的任何容器的句柄,调用 FindWindowEx,传递父(窗口)的句柄和容器的类名。您将需要重复此操作,直到到达文本框。您可以使用 Visual Studio 默认安装的名为Spy++的工具来检查目标应用程序并找出容器的层次结构(所有对象在 API 中实际上都称为窗口,但我将它们称为容器,而不是顶部 -级别窗口)及其类名。
于 2010-12-27T14:07:00.117 回答
3
然后 SendMessage(), WM_SETTEXT
于 2010-12-27T14:01:37.560 回答
1
您可以将击键发送到文本字段,而不是针对特定的应用程序。
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;
}
于 2014-06-21T19:20:48.583 回答
0
您可以使用 ClipBoard 类来实现相同的
于 2010-12-27T14:02:58.547 回答