2017-04-10 215 views
0

我想知道如何通過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; 
+0

[nodejs如何從標準輸入讀取按鍵]可能的副本(http://stackoverflow.com/questions/5006821/nodejs-how-to-read-keystrips-from-stdin) – Jer

+0

請看一下http:///stackoverflow.com/a/17473563/7707749,它可能是您搜索的內容。 –

+0

我不認爲這是可能的。當然不是你正在演示的服務器端代碼。雖然我還沒有完成這項研究,但我無法想象瀏覽器JS的沙盒也會允許這種直接的硬件仿真。你爲什麼需要F3命中?你期望發生什麼?你是否假設所有的電腦F3按鈕都做同樣的事情? – Paul

回答

0

看看robotjs,它可以被用來生成鍵盤事件。

例如,要「送」的F3按鍵:

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

雖然這取決於你使用的操作系統,如果這正在按計劃進行工作。

+0

這就是我一直在尋找 – John

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?

+0

謝謝我已添加$('#close-btn')。click(function(){ var ev = jQuery.Event(「keypress」); ev.ctrlKey = false; ev.which = 37; $(「container」)。trigger(ev); });對於以下按鈕\t John

+0

但它似乎不點擊按鈕時工作(f3關閉應用程序) – John

+0

如果您的意圖是用於任何硬件仿真,那麼這是不可能的。 這隻會觸發任何事件處理程序 –