17

NodeJSモジュールがコンソールから呼び出されると、いくつかの紹介メッセージを出力し、ユーザー入力を待つ(Enterまたはescをクリックする)と想像してください。このモジュールには、-wait-for-user-inputプロンプトを除いて、必要なすべてのものがすでにあり、実行されています。それで、(私は個人的にNodeJSに非常に慣れていないので)コンソールモジュールをプログラムで実行し、入力イベントをトリガーして、すぐにジョブを待機して続行しないようにすることができるかどうか疑問に思います。

4

5 に答える 5

27

これには、おそらくRobotJSを使用できます。

コード例:

var robot = require("robotjs");

// Type user's password or something. 
robot.typeString("abc123");
于 2015-02-05T05:22:07.567 に答える
16

Jasonが述べたように、キーシミュレーションにRobotJSを使用できますが、Windowspaltform用のrobotJSを正しく構築するにはいくつかの手順が必要です。

  1. Windowsビルドツールが必要になるので実行しますnpm install --global windows-build-tools(約120MBなので時間がかかります)
  2. 実行npm install robotjs --save-dev
    完了です!。
    これがエレクトロンアプリ用の場合は、以下の3番目のステップも必要になります。
  3. 走るnpm rebuild --runtime=electron --target=1.7.9 --disturl=https://atom.io/download/atom-shell --abi=57

    (1.7.9は私のものelectron --versionで、abiは対応する8.7がインストールされているものです。ここnode --versionで、ノードバージョンのabiバージョンを確認できます[NODE_MODULE_VERSION列を探してください])

于 2017-10-23T20:16:47.763 に答える
8

運用システムにキーを送信するだけでよい場合は、node-key-senderライブラリがRobotJの代わりになります。クロスプラットフォームで非常に小さなライブラリです。

でインストールしnpm install --save-dev node-key-senderます。

そして、以下を使用してキーボードに「Enter」を送信します。

var ks = require('node-key-sender');
ks.sendKey('enter');

ドキュメントページを確認してください:https ://www.npmjs.com/package/node-key-sender 。

于 2017-03-13T12:55:34.257 に答える
3

@Venryxに返信します。特に最初にノードをロードする必要がある場合は、robotjsに遅延が発生することは間違いありませんが、すでにノードをロードしている場合は、試してみる価値があるかもしれません。

robot.setKeyboardDelay(0)

遅延のデフォルト設定は10msです。これは私を大いに助けました。

于 2020-09-30T00:46:02.803 に答える
2

私は試しましrobotjsnode-key-senderが、キーイベントごとにかなりの遅延/スタッターが発生します。(特に頻繁に送信する場合に目立ちます)

node-ffi-napiこれを解決するために、Windows user32SendInput関数を直接呼び出す方法を見つけました: https ://stackoverflow.com/a/50412529/2441655

少なくとも私の場合、これにより大幅に優れたパフォーマンスが達成されました。(ただし、欠点は、もちろんWindowsでのみ機能することです)

于 2020-09-08T15:44:22.043 に答える