繁体   English   中英

如何使用nodejs按一个键?

[英]How to press a key using nodejs?

我想知道如何通过nodejs上的代码在键盘上获得某个键。

例如,一旦显示以下页面,我希望按下f3按钮:

var express = require('express');
var router = express.Router();


/* GET home page. */
router.get('/', function(req, res, next) {
   // press key
});

module.exports = router;

从服务器端不可能。 您可以在页面中包含可以触发事件的JavaScript脚本。 如果您使用的是jQuery。

var ev = jQuery.Event("keypress");
ev.ctrlKey = false;
ev.which = 37;
$("container").trigger(ev);

是否可以使用JavaScript触发键盘按钮?

看一下robotjs ,它可用于生成键盘事件。

例如,要“发送” F3键,请按:

const robot = require('robotjs');
...
router.get('/', function(req, res, next) {
  robot.keyTap('f3');
  res.end();
});

虽然这是否可以按预期工作取决于您使用的操作系统。

您可以只在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)
      }
    }
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM