2014-03-27 79 views
0

我正在尝试创建一个无限运行的程序,直到我按下一个按钮。该程序将在后台运行,因此没有任何时候打开显示器。 while(!certainButtonIsPressed) { // Do Something } 如何使它在SomeButtonIsPressed有效的同时不会产生KeyBoardListener类?这可能没有某种类型的Key侦听器?Java检测键被按下的时间

谢谢!

+0

你是否真的需要你的程序在后台运行(从控制台分离),还是只是想让它运行并检查按键而不使用UI? – lreeder

+0

理想情况下,我希望它在后台运行,因为我将它用作恶作剧,所以我希望该人无法看到程序正在运行。 – user3466776

+1

然后@HovercraftFullOfEels说的是真的。在java中这很难做到,因为你需要插入到OS键盘事件处理代码中的东西。深入到系统内部并不是java擅长的,通过设计。 – lreeder

回答

2

你问:

我试图让,直到我按下一个按钮,将无限地运行程序。该程序将在背景中运行,因此不会在任何时候打开显示。 while(!certainButtonIsPressed){// Do Something}我怎样才能让someButtonIsPressed有效,而不是创建KeyBoardListener类?这可能没有某种类型的Key侦听器?

所以基本上你要做的是从后台进程中捕获平台的所有按键,这是核心Java不能使用你提供的平台特定的本机代码,通过你已经获得的一些库,或者用你的Java程序与一些关键陷阱工具进行网格划分。所以如果你的问题是,这可以通过核心Java来完成吗?答案是:不。

如果您正在寻找非Java平台特定的解决方案,那么您需要提供更多详细信息。我的建议不是使用Java来完成一项任务,如果这是针对Windows环境,则可以使用另一种语言(可能是AutoIt等脚本语言)更容易且完全地执行该任务。