在C ++中从文本框复制文本

时间:2009-07-12 01:12:31

标签: c++ windows text copying

具体来说,程序正在运行,我想从程序内的文本框中提取文本。

通常,我应该使用哪些方法/主题“进入”我的系统上运行的另一个.exe并使用C ++从其中的文本框中提取数据?

我只是想指出一种方法,我可以实现这一目标。感谢。

3 个答案:

答案 0 :(得分:4)

您只需将EnumChildWindowsSendMessageWM_GETTEXT一起使用到您想要获取文字的特定窗口即可。

答案 1 :(得分:4)

“进入”GUI应用程序(特定于Windows)的另一种常见技术是DLL Injection + Windows Subclassing。这可能被认为是一些高级的Windows编程,关于这个主题的优秀书籍是“Windows Via C / C ++”。简要介绍一下这基本上是什么:

  1. 将自定义DLL注入目标程序的地址空间。
  2. 找到目标文本框的HWND。
  3. 子类化与更改/编辑此文本框相关的功能。
  4. 现在,只要有人编辑/文本被更改,您的函数将首先被调用,允许您查看/操作文本。您甚至可以选择不将其转发到普通处理程序。
  5. 另请注意,我上面提到的任何内容都不是“黑客入侵”,这是一个明确定义的行为,是微软故意实现的。它实际上在MSDN上有很好的文档记录。

    如果你想这样做,请看看'Windows Subclassing'和'Setting Hooks'。

答案 2 :(得分:0)

请参阅How I Built a Working Online Poker Bot: Extracting Text from 3rd-Party Applications,了解@DeusAduro提到的注入和子类技术的解释,以及其他几种技术,例如挂钩GDI文本输出API。当然,如果它是一个标准的文本框,你总是可以发送WM_GETTEXT,这甚至可以跨进程边界工作(实际上是为跨越进程边界而工作)。