0
FFIパッケージを使用して、nodejsのウィンドウApiからSendInput関数を使用したかったのです。Node-FFIでSendInputを使用
私のCの知識は限られているので、私は何の問題があるのか分かりません。 私は基本的にキーボードのキーを押しています。
私が持っているコードです:それはコンソールの「1」は、それはそれが動作するわけではないはずです、私を記録します
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);
?メモ帳を開くとキーが押されないからです。
'SendInput'は入力をハードウェア入力キューに入れます。この入力イベントが取得された時点で、フォアグラウンドにあるウィンドウ(またはスレッド)が入力を受け取ります。したがって、アプリケーションを起動すると、自然にメモ帳がフォアグラウンドウィンドウではありません。とにかく、あなたが説明したことがあなたの提案された解決策です。今あなたが解決しようとしている**問題**は何ですか? – IInspectable
最終目標としてメモ帳への入力を偽装したことはありません。あなたは本当に何をしようとしていますか?あなたがそれを偽造することができたとしても、私はメモ帳にあなたの真の目標は同じように解決されません。 –
@IInspectable私は現在のアクティブなウィンドウにボタン(キーボード上)をクリックするプログラムを書こうとしています。間隔は、基本的にオートクリッカーのようなものです。 – alphuite