Nodejs прослушивают глобальную горячую клавишу

Я не использую Node в качестве сервера; Я использую его для приложений CLI. Это, хотя нужно запустить в фоновом режиме и прослушать глобальные события нажатия клавиш (без фокуса).

Я не вижу никакого очевидного способа сделать это в Node. Каковы мои варианты?

Ответ 1

Похоже, вам нужен глобальный крючок для всех событий клавиатуры.
Вы можете попробовать iohook модуль. Использование довольно просто:

const ioHook = require('iohook');
ioHook.on("keypress", event => {
  console.log(event);
  // {keychar: 'f', keycode: 19, rawcode: 15, type: 'keypress'}
});
ioHook.start();

Ответ 2

Похоже на комбинацию daemon и keypress может вам понравиться. Я только когда-либо использовал keypress в node script, а не демонах, поэтому я понятия не имею, будет ли он работать одинаково. Но это может быть! В худшем случае вы обнаружите одно решение, которое не решит вашу проблему.

Ответ 3

Я просто делаю это с iohook. Вы могли бы сделать что-то вроде этого...

const ioHook = require('./node_modules/iohook-master/index.js');

ioHook.on("keyup",function(keyPress){
    if(keyPress.keycode == CTRLIZQ){
        //do something
    }
});

ioHook.start();