如何使用C#或C ++将文本插入另一个应用程序的文本框中? 很久以前我这样做了,似乎记得使用应用程序HWND的一些事情。但是,由于应用程序的每个实例的更改,我觉得我不记得完整的故事。我是否以某种方式获得正在运行的应用程序列表,提取我想要的应用程序,从中获取HWND然后......嗯....那么什么? :)
答案 0 :(得分:14)
使用FindWindowEx()查找句柄(HWND),然后使用WM_SETTEXT
发送SendMessage()消息使用FindWindowEx时,您需要首先使用其类名来查找主窗口句柄。然后,您需要找到文本框所在容器的句柄,调用FindWindowEx,传递父窗口(窗口)的句柄以及容器的类名。您需要重复此操作,直到到达文本框。您可以使用一个名为Spy++的工具,该工具默认安装在Visual Studio中以检查目标应用程序并找出容器的层次结构(所有对象在API中实际上都称为窗口,但我将它们称为容器使用顶级窗口)及其类名。
答案 1 :(得分:3)
然后SendMessage(),WM_SETTEXT
答案 2 :(得分: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;
}
答案 3 :(得分:0)
你可以使用ClipBoard类来实现相同的