我没有使用 Node 作为服务器;我将它用于 CLI 应用程序。这个虽然需要在后台运行并监听全局按键事件(没有焦点)。
我在 Node.js 中看不到任何明显的方法。我有哪些选择?
我没有使用 Node 作为服务器;我将它用于 CLI 应用程序。这个虽然需要在后台运行并监听全局按键事件(没有焦点)。
我在 Node.js 中看不到任何明显的方法。我有哪些选择?
看起来您需要所有键盘事件的全局挂钩。
你可以试试iohook模块。使用非常简单:
const ioHook = require('iohook');
ioHook.on("keypress", event => {
console.log(event);
// {keychar: 'f', keycode: 19, rawcode: 15, type: 'keypress'}
});
ioHook.start();
我只是用iohook来做。你可以做这样的事情......
const ioHook = require('./node_modules/iohook-master/index.js');
ioHook.on("keyup",function(keyPress){
if(keyPress.keycode == CTRLIZQ){
//do something
}
});
ioHook.start();
我keypress
在上面的评论中说使用,但是看到 lib 已经 8 岁并且被遗弃了,有人写了以下内容作为 lib 的替换,它只是做同样的事情,但它是 nodejs 内部依赖项。
let readline = require('readline');
readline.emitKeypressEvents(process.stdin);
process.stdin.on('keypress', (ch, key) => {
console.log('got "keypress"', ch, key);
if (key && key.ctrl && key.name == 'c') {
console.log('ctrl+c was pressed');
// do something usefull
}
});
process.stdin.setRawMode(true);
process.stdin.resume();