Windows屏幕键盘和java.awt.Robot鼠标问题

时间:2012-03-27 19:05:03

标签: java windows touch

我正在使用java.awt.Robot在Windows 7(64位)系统上发送鼠标事件。这基本上是将触摸事件转换为鼠标输入。为了允许用户在应用程序中输入字符,我计划重新使用内置的Windows屏幕键盘(osk.exe)。

然而,我遇到了麻烦。当光标位于OSK窗口的窗口装饰(标题栏,系统菜单等)上时,由Robot生成的任何鼠标按下事件都会冻结鼠标。似乎只处理鼠标按下事件,因为我可以看到OSK获得焦点。 Robot会继续发送其他鼠标事件,但它们对OSK窗口没有影响。唯一的出路是按下/释放连接到系统的物理USB鼠标。

奇怪的是,通过在Robot的OSK键盘按钮上发送鼠标按下来使用OSK输入字符工作正常。只是试图移动(或关闭)OSK窗口冻结了鼠标处理。

我已经看到了一些关于OSK和事件的其他问题,表明OSK是一个特殊的应用程序。但是我想知道Robot生成的鼠标事件和USB鼠标生成的鼠标事件之间有什么区别,因为OSK对它们的反应不同而Robot应该生成本机事件?

0 个答案:

没有答案