我正在研究一个Java非GUI客户端,它可以捕获Windows操作系统中的Global热键并执行某些功能。Windows全局热键锁定屏幕和注销屏幕?
为了实现全球热键,我已经使用了Jintellitype而且我还在JNativeHook上作为备份解决方案,以防万一出现在第一个库中。
现在我的要求说,即使在锁屏&注销屏幕,这应该工作,根据我的理解,应用程序可以在注销屏幕上运行,只有当它作为Windows服务运行。
对于Windows服务,我已经使用“高级安装程序”&,然后按照这些steps。
现在,当我将我的应用程序作为Windows服务运行时,它无法使用热键。同样的应用程序,如果我正常运行,而不是Windows服务,它可以采取热键。
为了验证是否是工作或没有,我用下面的代码转移所有的System.out到一个文件:
public static PrintStream out;
try {
out = new PrintStream(new FileOutputStream("C:\\"+"output.txt"));
System.setOut(out);
} catch (FileNotFoundException ex) {
System.out.println(ex);
}
问题:
- M I失去了一些东西?
- 这个要求不适用于Windows吗?
- 有没有其他方法或技术可以用来实现这个目标?
看看这个帖子中发布的链接[launch-an-exe-f ROM-procrun](http://stackoverflow.com/questions/35765273/launching-an-exe-from-procrun)。您可以通过'交互式服务'找到有关问题的信息。 – SubOptimal
我明白Windows服务在GUI中有限制,但我的应用程序不是GUI应用程序。它只会捕获热键,如果按下并打印日志。 –
好的。你的问题中没有提到这一点。但对不起,为了拦截非GUI Windows服务的键盘输入,我忍不住。 – SubOptimal