我有兴趣查看是否可以将功能绑定到用户按下/释放键盘上的键。
到目前为止,我已经能够使用keypress模块和 process.stdin原始模式获取按键事件:
var keypress = require('keypress');
keypress(process.stdin);
process.stdin.on('keypress', function(ch, key) {
console.log('got "keypress"', key);
if (key && key.ctrl && key.name == 'c') {
process.exit();
}
});
process.stdin.setRawMode(true);
process.stdin.resume();
Run Code Online (Sandbox Code Playgroud)
甚至可以在终端中捕获键盘按下和释放事件吗?
值得注意的是,我对任何浏览器实现都不感兴趣;我正在寻找在终端中在 NodeJS 中运行的东西。
谢谢,所有。
对于电子应用程序,有没有办法让我模拟键盘敲击动作。例如,将字母“a”发送到应用程序级别而不是前端级别。另一个例子是 Mac 以编程方式模拟command(保持)并tab在应用程序之间切换,这是由 Electron 触发的。
我尝试过类似的事情BrowserWindow.webContents.sendInputEvent,但robotjs没有成功,所以如果你觉得你有一个可行的例子那就太好了。我使用 macOSelectron-react-boilerplate作为这些的起点,并且使用 mac os X!
编辑:示例>单击电子应用程序中的按钮,我希望电子向操作系统级别触发一些键盘事件,例如(cmd + tab + tab + tab,cmd + Q),以便查看我的本机应用程序在应用程序之间切换,然后退出其中一个。请注意,我对查看进程 pid 路由不感兴趣,只是对键盘操作感兴趣。
我想在 nodejs 中使用 Windows Api 中的 SendInput 函数,使用 FFI 包。
我对 C 的了解有限,所以我无法真正弄清楚我有什么问题,我基本上是在尝试虚拟按下键盘上的一个键。
这是我的代码:
var ffi = require('ffi');
var ref = require ('ref');
var struct = require ('ref-struct');
var keyboardInput = struct({
'type': 'int',
'wVK': 'int',
'wScan': 'int',
'dwFlags': 'int',
'time': 'int',
'dwExtraInfo': 'int64'
});
var keyboardInputPtr = ref.refType(keyboardInput);
var keyboard = new keyboardInput();
keyboard.type = 1;
keyboard.wVK = 0x41;
keyboard.wScan = 0;
keyboard.dwFlags = 2;
keyboard.time = 0;
keyboard.dwExtraInfo = 0;
var user32 = ffi.Library('user32', {
'SendInput': [ 'int', …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 twitch 机器人,我想要它,所以当用户输入命令(类似 !space [time] )时,它会随机按他们给出的时间量的空格。我知道如何接收命令,但不知道如何发送按键输入。提前致谢
编辑:当我说发送按键时,我的意思是从我这边的nodejs控制台而不是在twitch上
编辑 2:我想要这个,这样我的直播中的观众就可以在我玩游戏时花费积分来恶搞我