绝对键盘输入位置(闪烁光标)

时间:2009-10-10 23:40:49

标签: java operating-system cursor-position

是否可以制作Java程序来确定闪烁键盘光标的绝对位置(屏幕上的x,y)?该光标可以在任何文本编辑器中。

2 个答案:

答案 0 :(得分:2)

不容易,因为光标在程序屏幕上的位置仅仅是程序中的数据点,并且渲染该光标是程序中运行的方法。 (我正在读你的问题意味着有问题的程序/编辑器是一个完全独立于Java程序的进程,对吗?)

理论上,如果符合以下条件,您可以这样做:

  • 程序通过一些API调用显式地导出光标位置

  • 您可以非常快速地捕获该程序的实际屏幕抓取,分析图像差异,并在出现/消失矩形或短线时推断光标位置,以防程序屏幕没有更改,除了光标闪烁。

    • 如果您需要编辑器中的相对位置(例如,在字符数#而不是像素数中),则以某种方式使用边缘识别来检测编辑器大小,使用一些高级图像处理魔法来推断字体大小,并计算基于字符的偏移量
  • 如果编辑器使用标准操作系统(例如Windows)API来绘制编辑窗口和光标,理论上可能会挂钩系统来拦截这些调用 - 我几乎没有金额了解这些API可能是什么或者是否存在这些API,拦截它们的可能性有多大,以及Java程序是否能够在理论上做到这一点。

答案 1 :(得分:0)

这里的问题不是可能与否,问题是出于什么目的我应该这样做?坦率地说,我没有看到任何理由,我厌倦了像间谍软件那样令人烦恼的迷你应用程序。你是否试图将现有的应用程序复制到另一种形式的大规模恐怖中? 如果你发现我的评论令人反感,请原谅,但这是我的答案。另一个问题:为什么?