我只是在寻找某种类型的关键字的方向'我应该在尝试找到问题的解决方案时使用,因为我没有找到任何结果,就像我输入它一样。 基本上,我希望我的程序能够监控在我运行jframe等时不断按下的最后5个键盘按键。
因为它记得最后5个,我希望它扫描它们,直到它们匹配预先设定的密码,如果你愿意的话。如果5个字符匹配我想要一个后门/隐藏的开发人员jframe打开。我说5个字符让它变得简单。一旦我理解,我可能会增加,以使其更安全。由于这将是一个本地程序,我只是将预先设置的密码硬编码到程序中。使用该软件的任何人都不会被搞砸了#39;在java上足以利用它。
任何帮助将不胜感激,
由于
答案 0 :(得分:0)
我不确定这是否完全回答了你的问题。
我使用javascript创建了一个函数,该函数将记下每5个字符输入的内容:
<textarea id="input" onkeyup="check()" maxlength="5"></textarea>
<p id="p"></p>
<script>
var n = 0;
function check() {
if (event.keyCode >= 48 && event.keyCode <= 57 || event.keyCode >= 65 && event.keyCode <= 90) {
n += 1;
if (n == 5 || document.getElementById('input').value.length == 5) {
document.getElementById('p').innerText = document.getElementById('input').value;
n = 0;
document.getElementById('input').value = "";
}
}
if (event.key == "Backspace" || event.key == "Delete") {
n -= 1;
}
}
</script>
这是显示它的JSFiddle。
答案 1 :(得分:0)
听起来你想要实现自己的密钥监听器并且&#34;附加&#34;它到主框架/窗口。键入键时,您需要跟踪它们。 FIFO(先进先出)队列听起来像你想要的。每次键入一个键时,弹出一次,然后将键入的键添加到队列中。链表可能就足够了。
有必要定期检查该队列,看看是否应该启动隐藏的开发人员控件。如果您将队列放在键监听器中,那么您可能希望在主程序中使用变量并为您的键监听器提供对它的引用,以便这两个类可以通过这种方式进行通信。否则,您可以将队列保留在主类中,但是键侦听器需要对 的引用,以便它可以修改队列。无论代码如何 启动开发人员控件需要被某人调用,我建议将该代码保存在主类中,因为它与处理关键事件无关。
P.S。 使用链接列表在这里很有用,因为默认的Java实现了队列和列表接口,因此可以迭代内容以及查看其中有多少元素。
可能更容易: +将东西放入列表/队列 +检查它是否有5个字符 +将这5个字符复制到共享字符串 +将共享布尔值更改为true +清除队列 ^最后3个步骤只应在共享布尔值为假(即初始或主程序尚未检查)时发生,否则您只想维持列表/队列的长度为5或更短。你可以让它不受限制地增长,但这只会使用不必要的内存imho。