我有 Java 背景,所以在 C# 和 C++ 方面知识有限。基本上我正在尝试从屏幕上显示的另一个应用程序“读取”文本......
具体来说,我想阅读来自 Pokerstars 的发牌员聊天消息...即时...
将这段文本即时读入 Java 程序的最佳方法是什么?Ive 头关于 API 挂钩,这是唯一的方法,我将如何在 Java 中做到这一点?
谢谢菲尔
我有 Java 背景,所以在 C# 和 C++ 方面知识有限。基本上我正在尝试从屏幕上显示的另一个应用程序“读取”文本......
具体来说,我想阅读来自 Pokerstars 的发牌员聊天消息...即时...
将这段文本即时读入 Java 程序的最佳方法是什么?Ive 头关于 API 挂钩,这是唯一的方法,我将如何在 Java 中做到这一点?
谢谢菲尔
如果您要挂钩的应用程序是 c#,那么也许反射器是一个不错的起点。
http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1
您想要研究的另一件事是读取网络流量并在该级别获取数据。在这种情况下,请查看wireshark。
您可能可以创建一个代理,其中数据在网络级别通过您的应用程序定向,然后您将其传递但读出有趣的部分。
祝你好运。
一种方法,只要文本没有抗锯齿,就像在你的图像中一样:
从您的应用程序中,截取另一个应用程序窗口的屏幕截图。在屏幕截图中搜索所有非白色像素。列出所有非白色像素。对于列表中的每一对非白色像素,如果这对像素相互接触,则将它们放在同一个“组”中。这样做直到所有像素都组合在一起。
然后对于每个组,将其形状与预定义形状表进行比较。如果形状不在表格中,请让用户输入字母,然后将形状和它是哪个字母保存到表格中。
现在您有了窗口中所有字母的 ASCII 码。
这不是从窗口中抓取文本的最干净的方法,但它很难被打败。对于其他应用程序为使计算机更难阅读文本而采取的任何措施,人类将变得更难以阅读,从而降低了应用程序的有用性。