C# 从外部应用程序读取屏幕上的文本。API挂钩? 我有java背景,所以在C++和C++方面知识有限。基本上,我试图“读取”屏幕上显示的另一个应用程序的文本

C# 从外部应用程序读取屏幕上的文本。API挂钩? 我有java背景,所以在C++和C++方面知识有限。基本上,我试图“读取”屏幕上显示的另一个应用程序的文本,c#,java,c++,api-hook,event-hooking,C#,Java,C++,Api Hook,Event Hooking,具体来说,我想阅读扑克明星的经销商聊天信息。。。在飞行中 将此文本动态读入Java程序的最佳方式是什么?关于API挂钩,我想问一下,这是唯一的方法吗?在Java中我该怎么做 谢谢 Phil如果您想要连接到的应用程序是c#,那么reflector可能是一个很好的起点 另一件你想研究的事情是读取网络流量并获取该级别的数据。在这种情况下,看看wireshark 您可以创建一个代理,在这个代理中,数据在网络级别直接通过您的应用程序传递,但您可以读出感兴趣的部分 祝你好运。有一种方法可以做到,只要文本

具体来说,我想阅读扑克明星的经销商聊天信息。。。在飞行中

将此文本动态读入Java程序的最佳方式是什么?关于API挂钩,我想问一下,这是唯一的方法吗?在Java中我该怎么做

谢谢
Phil

如果您想要连接到的应用程序是c#,那么reflector可能是一个很好的起点

另一件你想研究的事情是读取网络流量并获取该级别的数据。在这种情况下,看看wireshark

您可以创建一个代理,在这个代理中,数据在网络级别直接通过您的应用程序传递,但您可以读出感兴趣的部分


祝你好运。

有一种方法可以做到,只要文本没有消除锯齿,就像在你的图像中一样:

从您的应用程序中,拍摄另一个应用程序窗口的屏幕截图。在屏幕截图中搜索所有非白色像素。列出所有非白色像素。对于列表中的每一对非白色像素,如果这对像素彼此接触,则将它们放在同一“组”中。这样做,直到所有像素都分组在一起

然后,将每组的形状与预定义形状表进行比较。如果形状不在表中,请用户键入字母,然后将形状和字母保存到表中

现在窗口中的所有字母都有了ASCII码


这不是从窗口刮取文本的最干净的方法,但很难克服。对于其他应用程序使文本更难被计算机读取的任何动作,它将变得更难被人类读取,从而降低应用程序的有用性。

这不是作弊。。。我正在构建一个扑克追踪软件,它是100%合法的,谢谢如果他只是在阅读屏幕上已经存在的文本,那就很难作弊了。@deadmg如果不阅读屏幕上的文本,你怎么写一个扑克机器人呢?无论如何,菲尔的解释澄清了这一点。我想在这里之前也有人问过和回答过类似的问题:我希望这对你有帮助。@Maarty不幸的是,我最后不得不关闭窗口上的文本阴影,然后才为不同的字体字符刮取实际的原始像素(这绝对是可怕的,我不想让任何人经历).嗨,我不希望使用OCR,因为我计划一次运行多个表,我不希望传递太多的屏幕截图…无论如何,谢谢你的输入!我所说的远没有OCR复杂。OCR几乎可以识别任何字体的字母。我所说的只能识别字母tters已经看到了一个精确的位模式。这太过分了。阅读API挂钩(即迂回或轻松挂钩)来读取应用程序在屏幕上写的内容。因此,如果我只听Java中的端口26002(Pokerstars端口)并解析那里的数据?(抱歉,我不是低级计算专家…)