問題タブ [jnativehook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java AWT Robot はマウス クリックを画面上の完全にランダムな場所に配置します [ビデオの説明]
ユーザーがクリックとキー押下のスクリプトを作成し、それらを順番に実行できるプログラムを作成しようとしています。このプログラムの最も重要な機能は、クリックを画面上の適切な座標に正確に配置できることです。このプログラムは 1 年前に C# で作成しましたが、より見栄えがするように JavaFX で再試行しています。キーリスナーとマウスリスナーに JNativeHook を使用しています。
これが私が直面している問題です: robot.mouseMove() を実行すると、カーソルが画面上の完全にランダムな場所に送信されます。NativeMouseListener mousePressed 関数内とロボットを使用したクラス内の両方で、カーソルの現在の位置を出力することでこれを確認しています。NativeMouseListener でマウスの位置を取得するために、完全に正確な NativeMouseEvents getX および getY 関数を使用しています。次に、他の出力については、さまざまな結果を持つ PointerInfo.getPointerInfo() を使用しています。ディスプレイの DPI スケーリングが 100% に設定されている場合、PointerInfo は完全に不正確になります。ちょっとばかげているようです。ロボットはマウスをランダムな位置に送信しており、PointerInfo はその位置を正しく読み取ることさえできません。ディスプレイのスケーリングを 125% に設定すると、PointerInfo は画面上の NativeMouesListener と同じ位置を取得します。
マウス クリックをシミュレートするために使用できる代替または外部ライブラリはありますか? ロボットのように機能不全に陥ったものだけが、これを達成しなければならないというのは信じられないことです。
これは私の問題をさらに説明するビデオです: https://www.youtube.com/watch?v=BerTofDwRUw