具体来说,程序正在运行,我想从程序内的文本框中提取文本。
通常,我应该使用哪些方法/主题“进入”我的系统上运行的另一个.exe并使用C ++从其中的文本框中提取数据?
我只是想指出一种方法,我可以实现这一目标。感谢。
答案 0 :(得分:4)
您只需将EnumChildWindows
和SendMessage
与WM_GETTEXT
一起使用到您想要获取文字的特定窗口即可。
答案 1 :(得分:4)
“进入”GUI应用程序(特定于Windows)的另一种常见技术是DLL Injection + Windows Subclassing。这可能被认为是一些高级的Windows编程,关于这个主题的优秀书籍是“Windows Via C / C ++”。简要介绍一下这基本上是什么:
另请注意,我上面提到的任何内容都不是“黑客入侵”,这是一个明确定义的行为,是微软故意实现的。它实际上在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,这甚至可以跨进程边界工作(实际上是为跨越进程边界而工作)。