我在java中编写了一个键盘记录程序。我面临的问题是我的程序在所有窗口前都可以工作。我希望它在隐藏或隐藏在其他窗口后记录键盘活动。我怎么能管理呢?非常感谢你。
答案 0 :(得分:1)
如果您在Windows中执行此操作,则有2个选择。内核过滤器驱动程序将捕获所有键盘输入,而不管它所针对的是哪个窗口。 请参阅此示例代码 http://code.msdn.microsoft.com/windowshardware/Kbfiltr-WDF-Version-685ff5c4 请注意,此驱动程序可能很好地捕获键盘生成的按键向下键代码,您需要将其组装成完整的按键。
另一种方法是通过操作系统挂钩进入消息泵。初学者请看这个 http://msdn.microsoft.com/en-us/library/windows/desktop/ms632589(v=vs.85).aspx
您需要在Windows操作系统上为这两种键盘捕获样式编写本机代码。 java沙箱将在Windows上阻止它。
答案 1 :(得分:0)
一般情况下,你不能。操作系统决定发送键盘和鼠标事件的位置,而您的操作系统不会将您想要的事件发送到后台应用程序。
您需要挂钩操作系统。根据您的操作系统,可能会有Java绑定。更有可能的是,您需要使用本机代码编写服务或内核扩展。