如何使用Processing记录系统正在使用的快捷方式?
如果我尝试记录Apple-Key
+ Alt-key
+ Esc-key
(在OSX中打开强制退出应用程序窗口),Esc-key
永远不会到达{{1}事件。
虽然按keyPressed
会自动关闭窗口,但仍会在Processing中收到keyCode:
Esc-key
所以我的问题是。如何在发生系统事件时仍然收到void keyPressed() {
println(keyCode);
}
。或者甚至更好地覆盖系统事件。
答案 0 :(得分:0)
如果我没记错的话,退出函数的退出会在keyPressed()事件之后运行,所以你可以这样做:
void keyPressed(){
if(key==27){
< insert code here >
key=0;
}
}
这将欺骗处理认为转义键不是按下的键。
另一方面操作系统键绑定无法覆盖(例如windows force中的alt-f4关闭一个应用程序。这不能被禁用,因为这是你离开一个不会让你离开它的界面的程序)。这是一项安全功能。
&LT; --------------------------------------------- ---------&GT;
旁注:如果你想计算多个按键,就像你的应用程序退出示例一样,即使在同一时间按下它们,每次按下都会触发一个keyPressed事件,因此你必须记录keyPressed时按下的键。 )被触发并记录当触发keyReleased()时它们不再被保持。示例代码:
boolean isControlPressed=false;
void keyPressed(){
if(key==CODED && keyCode==CONTROL)isControllPressed=true;
else if(key == 'c' || key == 'C'){
if(isControlPressed){
//do control-c stuff
}
}
}
void keyReleased(){
if(key==CODED && keyCode==CONTROL)isControllPressed=false;
}
编辑:我在检查是否为c时检查是否为CODED是不好的做法,不要模仿,我正在快速打字。
此外,我认为应用程序关闭时会运行一个函数,如果这是一个问题,您可以使用它来快速保存数据