没有打开窗口的Java Keylistener?
我正在尝试用Java创建一个自动点击器(我只知道一种语言,而且我刚刚学习了线程)。我想让小程序在它自己的窗口中打开(而不是在网页上),并且我想能够在不选择窗口的情况下使用空格键启动和停止程序,这样我就可以在另一个程序上使用自动点击器,并且能够在不使用alt-F4键的情况下停止它没有打开窗口的Java Keylistener?,java,keylistener,Java,Keylistener,我正在尝试用Java创建一个自动点击器(我只知道一种语言,而且我刚刚学习了线程)。我想让小程序在它自己的窗口中打开(而不是在网页上),并且我想能够在不选择窗口的情况下使用空格键启动和停止程序,这样我就可以在另一个程序上使用自动点击器,并且能够在不使用alt-F4键的情况下停止它 你有什么可以帮我的吗?或者您有什么建议吗?这可能超出Java小程序的范围。事实上,全局键盘挂钩绝对超出了简单使用Java的范围,但我可以帮助您朝着正确的方向前进 然而,你有一些希望。我将为您指出的方向是,它将允许您使用本
你有什么可以帮我的吗?或者您有什么建议吗?这可能超出Java小程序的范围。事实上,全局键盘挂钩绝对超出了简单使用Java的范围,但我可以帮助您朝着正确的方向前进 然而,你有一些希望。我将为您指出的方向是,它将允许您使用本机库。现在,由于您希望留在Java世界,我建议不要直接使用JNI,因为您必须编写一些令人困惑的本机代码(通常是C、C++)。JNI有几个包装器,允许您使用这些函数,但是本机实现被抽象掉了,但是其中很多都要花钱
因此,我认为,对你来说,最好的解决办法是。这允许您直接从Java内部调用本机库。(注意:实现不会跨平台。您必须为Windows、Linux等单独实现。)项目网站上的示例中有一个很好的Windows键盘挂钩示例 至于不在网页中打开自己的窗口,您希望小程序不在浏览器中运行,而是在自己的单独进程中运行,还是只在单独的窗口中,仍然依赖浏览器窗口的打开
- 如果您只想启动一个新窗口,但仍然需要打开浏览器,那么下面是一个很好的示例:
final Frame window = new Frame("This is the Frame's Title Bar!"); window.add(new Label("This is the Frame.")); window.setSize(300,200); window.setVisible(true); window.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ window.dispose(); } });
- 如果希望小程序生成新进程并在不需要浏览器的情况下运行,请查看
Stefano我认为您可以使用
setVisible(false)
方法来实现这一点。
窗口将在那里,但用户将无法看到它。在它自己的单独窗口中可能是最好的。 User32 user32 = User32.INSTANCE; boolean res = user32.RegisterHotKey(Pointer.NULL, 9999, User32.MOD_ALT | User32.MOD_CONTROL, WINUSER.VK_LEFT); if(!res) System.out.println("Couldn't register hotkey"); System.out.println("Starting and waiting"); user32.MsgWaitForMultipleObjects(0, Pointer.NULL, true, User32.INFINITE, User32.QS_HOTKEY); System.out.println("Ending");