FFI パッケージを使用して、nodejs の Windows Api から SendInput 関数を使用したかったのです。
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', [ 'uint', keyboardInputPtr, 'int' ] ]
});
setInterval(function(){
var r = user32.SendInput(1, keyboard.ref(), 40);
console.log(r);
}, 500);
コンソールに「1」と記録されますが、それは機能していることを意味するのでしょうか? メモ帳を開いたときにキーが押されないためです。