java - 从 SunAwtCanvas 获取纯文本

标签 java winapi canvas getmessage

由于无法使用标准的 Windows API 函数(如 GetMessage())从 java canvas 捕获文本,我想知道是否有任何方法可以 Hook drawText() 方法在这样的 java Canvas 中,并在文本实际绘制到 Canvas 上之前捕获文本。有谁知道如何解决这个问题?用 java 编写的解决方案也将被接受。任何建议都会很好,谢谢。

编辑: 能不能把国外的canvas handle偷过来,设置到自己的canvas上?因此,外国应用程序不会再绘制到它的 Canvas 上,而是绘制到我的欺骗性 Canvas 上。通过这种方式,我可以在我的应用程序中轻松覆盖 drawText() 方法。

最佳答案

使用 Java Instrumentation 将代码注入(inject) drawString(),例如使用 Javassist。

您可以组合来自 here 的代码使用 insertBeforethere 注入(inject)您的代码在 premain 方法中激活转换。

关于java - 从 SunAwtCanvas 获取纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8605089/

相关文章:

java - CSVPrinter printRecord java.io.IOException : Stream closed

java - 如何让线程在已关闭的 ScheduledExecutorService 中等待

java - 在 Elasticsearch Java API 中将 _source 添加到 SearchQueryBuilder 的等效函数?

c - 通过完全限定的路径打开命名的互斥体

windows - Windows 如何更改键盘布局?

javascript - 简单的 HTML5 Canvas 图像不显示

java - 如何使用线程打印字符串数组

linux - Windows <sys/file.h> 等效项

javascript - 将 Canvas 制作成图像大小?

java - 如何在JavaFX(逐像素) Canvas 中创建填充动画?