keyReleases模拟keyPresses在Linux(Java Swing GUI)【JAVA教程】

!
也想出现在这里? 联系我们
信息

keyReleases模拟keyPresses在Linux(Java Swing GUI),第1张

概述keyReleases模拟keyPresses在Linux(Java Swing GUI)

我有一个我正在工作的自助服务terminalGUI应用程序,它需要我阻止用户无法从全屏窗口中Alt-Tab。 后来我发布了一个关于这个问题的问题,一位成员帮了我一些代码,在windows环境下完美运行。

这里是:

public class TabStopper implements Runnable { private boolean isWorking = false; private MenuFrame parent; public TabStopper(MenuFrame parent) { this.parent = parent; new Thread(this,\”TabStopper\”).start(); } public voID run() { this.isWorking = true; Robot robot; try { robot = new Robot(); while (isWorking) { robot.keyrelease(KeyEvent.VK_ALT); robot.keyrelease(KeyEvent.VK_TAB); parent.requestFocus(); Thread.sleep(10); } } catch (Exception e) { e.printstacktrace(); } } public voID stop() { this.isWorking = false; } public boolean isWorking() { return this.isWorking; } }

不过,我需要这个能够在linux中工作。 我从源代码制作了一个可执行的jar文件,并将它带入了linux。 一切正常,除了Alt和Tab键被不断按下。 我的graphics用户界面上的button不断循环,我可以打开一个terminal(我在testing过程中设置后门,以防发生这种情况)不会让我input任何内容,因为Tab列出了所有的文件当前目录。

任何人都可以告诉我,如果有一个修复,可以在linux和windows环境中工作。 但是,如果我不得不select,我会去linux。

在linuxterminal上按键有没有一个types的缓冲区?

如何检测在linux和windows与Python的背景按键组合?

在linux C控制台应用程序中模拟按键

C#检测击键并发送到后台windows

我怎么能统计我的按键频率和数量

编辑:我也可以确认Alt键正在“按下”。 这个奇怪的行为是什么?

从C#中的windows服务捕获关键事件

在C#中使用ALT + TAB / ESC循环打开窗口,并使当前窗口处于焦点并被强制为最大化(如果已经最小化为任务栏)?

在Bash脚本中find基于文件名的自动完成

windows系统编程:是否可以将按键发送到不是当前活动的应用程序?

帮助:达到的最大客户数 – 分段错误

忘记用这样的黑客抓住Alt + Tab。 这是一个糟糕的黑客攻击,很容易出错。 还有很多其他的热键组合。

对于linux你有两个选择:

根本不使用窗口管理器,也不使用窗口管理器。 例如,使用fluxBox,您可以删除所有的键绑定,也可以使应用程序在默认情况下最大化等等。您可以清空桌面菜单,使得用户即使在应用程序崩溃时也不能控制。 这是一个干净的解决方案,真正解决您的问题,而不是它的一些部分。 Alt + Tab以外的系统有很多种方法。

完全抓取输入控件。 这就是游戏所做的。 例如libSDL为你做了这个,并且还有Java包装的功能。 这也应该像预期的那样工作,除了你使用一个窗口管理器,不允许输入控制抓住每个默认(我不知道任何)。

总结

以上是内存溢出为你收集整理的keyReleases模拟keyPresses在Linux(Java Swing GUI)全部内容,希望文章能够帮你解决keyReleases模拟keyPresses在Linux(Java Swing GUI)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞98 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容