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

时间:2010-12-27 13:58:11

标签: c# c++ ipc hwnd inter-process-communicat

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

4 个答案:

答案 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类来实现相同的