我想知道如何通过nodejs上的代码在键盘上获得某个键。
例如,我希望在呈现以下页面后按下f3按钮:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
// press key
});
module.exports = router;
答案 0 :(得分:1)
无法从服务器端进行。 您可以在页面中包含可以触发事件的javascript脚本。 如果您使用的是jQuery。
var ev = jQuery.Event("keypress");
ev.ctrlKey = false;
ev.which = 37;
$("container").trigger(ev);
Is it possible to trigger a keyboard button with JavaScript?
答案 1 :(得分:0)
查看robotjs
,可用于生成键盘事件。
例如,要“发送”F3键按下:
const robot = require('robotjs');
...
router.get('/', function(req, res, next) {
robot.keyTap('f3');
res.end();
});
虽然这取决于您正在使用哪个操作系统,但这可以按预期工作。
答案 2 :(得分:0)
您可以简单地在nodejs中使用applescript,并在其他平台上使用node-key-sender。
const os = require('os')
const childProcess = require('child_process')
const { promisify } = require('util')
const ks = require('node-key-sender')
function hitHotkey (key, modifier) {
if (os.type() === 'Darwin') {
if (modifier) {
return exec(`Script="tell app \\"System Events\\" to keystroke ${key} using ${modifier} down"
osascript -e "$Script"`)
} else {
return exec(`Script="tell app \\"System Events\\" to keystroke ${key}"
osascript -e "$Script"`)
}
} else {
if (modifier) {
return ks.sendCombination([modifier, key])
} else {
return ks.sendKey(key)
}
}
}