2017-07-10 12 views
0

私はいくつかの作業をしている間、このコードを実行しています。私はいくつかのクリックを自動化しようとしており、カーソルを元の場所に戻しています。私はコードを実行するために特定のキーを割り当てる問題があります。私はこのスクリプトを 's'の代わりに実行するためにF5を使用したいと思いますが、F5の出力を記録すると、keycharの値は0になります。他のすべてのFキーやその他のさまざまなキーもこの値になりますプログラムの拡張が困難になります。私は間違って何をしていますか?ウィンドウオブジェクトなしでJavaScriptでkeypressイベントを正しく記録する

'use strict'; 
var robot = require("robotjs"); 
var ioHook = require('iohook'); 
robot.setMouseDelay(20); 

ioHook.on("keypress", event => { 
if(event.keychar == '116') { 
    var currentPosition = robot.getMousePos(); 
    console.log(currentPosition); 
    robot.moveMouse(1735, 1019); 
    robot.mouseClick("left"); 
    robot.setMouseDelay(3); 
    robot.moveMouse(currentPosition.x, currentPosition.y); 
}  
    console.log(event.keychar); 
    //{keychar: 'f', keycode: 19, rawcode: 15, type: 'keypress'} 
}); 
ioHook.start(); 

私はrobotjsとiohookを使用しています。

https://robotjs.io/ 
https://github.com/WilixLead/iohook 

いくつかのヘルプが大好きです。

答えて

1

Fnキーを使用している場合は、event.rawcode == '65300'を使用する必要があります。しかし、をFnのキーなしで使用している場合は、event.rawcode == '65474'です。

だからあなたのコードはそのようになります:

var robot = require("robotjs"); 
var ioHook = require('iohook'); 
robot.setMouseDelay(50); 
ioHook.on("keypress", event => { 
if(event.rawcode == '65300'||event.rawcode == '65474') { 
    var currentPosition = robot.getMousePos(); 
    console.log(currentPosition) 
     robot.moveMouse(1735, 1019); 
     robot.mouseClick("left"); 
     robot.setMouseDelay(20); 
     robot.moveMouse(currentPosition.x, currentPosition.y); 
     } 
}); 

ioHook.start(); 
関連する問題