如何通过Processing录制系统正在使用的快捷方式
如果我尝试记录Apple-Key + Alt-key + Esc-key (它在OSX中打开强制退出应用程序窗口),Esc-key永远不会到达keyPressed事件。
在按Esc-key键的同时自动关闭窗口,但仍会在Processing中接收keyCode
void keyPressed() {
println(keyCode);
}所以我的问题是。当它触发系统事件时,我如何仍然接收Esc-key。或者更好的是全部覆盖系统事件。
发布于 2016-01-25 10:36:40
如果我没记错的话,在keyPressed()事件之后会运行quit on escape函数,所以您可以这样做:
void keyPressed(){
if(key==27){
< insert code here >
key=0;
}
}这会使进程误以为退出键不是按下的键。
另一方面,操作系统的快捷键不能被重写(例如,windows force中的alt-f4会关闭应用程序。这不能被禁用,因为这是你退出一个不让你离开它的界面的程序的方式)。这是一项安全功能。
<------------------------------------------------------>
旁注:如果你想计算多个按键,就像你的应用程序退出示例一样,每次按下都会触发一个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时,这是不好的做法,不要模仿它,我输入得很快。
此外,我认为在应用程序关闭时会运行一个函数,如果这是一个问题,可以使用它来快速保存数据
https://stackoverflow.com/questions/34984152
复制相似问题