問題タブ [awtrobot]

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.

0 投票する
3 に答える
2250 参照

java - Java - アプリケーションの背後にあるスクリーン キャプチャ

画面をキャプチャする方法はありますが、アプリ自体は表示されません。フレームを最小化または非表示にする方法は知っていますが、これは毎秒(少なくとも毎秒)大量に発生するため、非常に高速に実行する必要があります。Windows Vista/7 の拡大鏡のようなものにしたい。(アプリは自分の後ろを見ることができます。)

0 投票する
1 に答える
471 参照

java - プログラムによる Swing アプリケーションの実行 (リモートクラス)

自動的に実行しようとしているスイング アプリケーションのソース コード (またはコンパイルされたクラス) がないという、少し複雑なケースがあります。

このアプリケーションで一連のタスクを実行し、いくつかのボタンを押したり、いくつかの部分をクリックしたりします。これをプログラムで実行できるようにしたいと考えています。

私が遭遇したすべての Swing デバッガー/ロボットは、起動しているクラスを持っていることを望んでおり、デバッガーはクラスと一緒に起動します。

ここでの問題は、JNLP アプリケーションを起動することによってアプリケーションが起動されることです。JNLP アプリケーションは、私を認証し (ユーザー名とパスワードを入力する必要があります)、リモート サーバー上で一連のクラスを実行します。そして、Swing アプリケーションが起動します。

おそらく、swing アプリケーションにアタッチしてプログラムで実行できるようになりたいと考えています。申し訳ありませんが、これは複雑すぎるようですが、これがシナリオです...

仕方がないのかもしれませんが、その場合も教えてください...

0 投票する
2 に答える
8317 参照

java - Robot.delay(int)とThread.sleep(long)

java.awt.Robot終了条件が満たされるまで、を無限ループで駆動することを唯一の目的とするプログラムがあります。

ロボットは多数のアクションをすばやく連続して実行しますが、これらのアクション間には標準のUI遅延が必要です。このために、私はjava.awt.Robot.setAutoDelay(int ms)、まさにこの目的のために設計されているように見えるを使用します。

ただし、それ以外の場合は、操作を完了するために任意に長い遅延を挿入する必要があります。私はどちらを使用するかを選択java.awt.Robot.delay(int ms)できるjava.lang.Thread.sleep(long ms)ようで、それらの違いは何で、どちらを使用すべきか興味があります。

私の直感は、すべての操作を同じ「場所」に保ち、を使用することjava.awt.Robot.delay(int ms)でした。しかし、少し考えてみるとjava.awt.Robot.delay(int ms)、ロボットの操作のスタックに操作が完了すると思いました。それが無限ループでの唯一の遅延である場合、非常に迅速に、そして不必要に、途方もなく大きなものを生成する可能性があります。ロボットのイベントのキュー。

その時点で、APIjava.awt.Robot.delay(int ms)をチェックしました。これにより、次のことがわかりました。

指定された時間スリープします。InterruptedException発生するをキャッチするには、Thread.sleep()代わりにを使用できます。

問題についての有用な洞察を得ることができなかったので、私は皆さんに尋ねることを選びました。

0 投票する
0 に答える
1118 参照

java - WM_PAINT、Java、隠しウィンドウのキャプチャ

まず免責事項として、私は Java プログラマーであり、Windows API についてほとんど何も知りません。だから我慢してください。

私の目標は、Java を使用して非表示のウィンドウをキャプチャすることです。私のターゲット プラットフォームは Windows です。Robotクラスが画面の表示部分をキャプチャするために使用されることは理解しています。ブラウジングした後、次の 3 つのリンクに出くわしました。これらは関連していると思われます。

JxCapture は、Feng Yuan の記事が複雑であるのと同じくらい高価です。私の質問は、このフォーラムの達人が合理的な解決策を見つけるのを手伝ってくれるかどうかです. JxCapture で提案されているアプローチは、それほど複雑ではないようです。ヒントはありますか?Visual Basic スクリプトまたはこれを行う C# コードは、出発点として適しています。

ウィンドウが非表示のときにキープレス イベントまたはマウス プレス イベントを送信すると、強制的にウィンドウが再描画され、java.awt.Robot. それは錯覚であり、うまくいきません。

一方、JxCapture スレッドのメッセージは 2006 年のものです。それ以来、Sun にはそのような機能が組み込まれているのに、私はそれを認識していないのでしょうか?

0 投票する
2 に答える
2413 参照

java - java 任意のオブジェクトの画面座標を取得する

Java を使用して、DOM 内の任意のオブジェクトの画面座標を取得しようとしています。

たとえば、ボタン名 () または Web または Windows アプリの任意のオブジェクト) を取得し、x、y 座標を返すコードを記述して、Java ロボットを使用してそのボタンでマウス操作を実行できるようにします。

よりダイナミックにしたいので、自分で座標を取得したくないので、その場で現在の座標を取得してロボットに渡し、オブジェクトと対話します。

どんな考えでも素晴らしいでしょう

0 投票する
1 に答える
1361 参照

java - java.awt.Robot をマウスドラッグイベントに応答させるにはどうすればよいですか?

共有ディスプレイ システムで使用するために、他のコンピューターのユーザーが JPanel のコンテンツを制御できるようにするクラスを作成しています。java.awt.Robot を使用すると、マウス クリックとキーボード入力を実行できますが、メソッドがありませんmouseDragged(MouseEvent evt)。私のクライアントには、次のようなリスナーの一部としてclientMouseReleased(および) メソッドがあります。PressedMouseAdapter

はjava.awt.RobotremoteDesktopを含むクラスであり、クライアントが呼び出すメソッドでRobot.mouseMoveand Robot.mouseRelease(または) を実行します。同じように、つまりRobot.mousePress次のように記述できるようにしたいと思います。mouseDragged

0 投票する
1 に答える
229 参照

java - ウィンドウの背面画像を取得するには?

視覚障害者向けのプログラムを作成しています。目的は、色、形など、画面の一部の機能を置き換えることです。現在、フルスクリーン ウィンドウがあり、(ロボットの Java ライブラリを介して) 画面のスナップショットを取得し、それをフルスクリーン ウィンドウに再現します。次のスクリーンショットを撮ろうとすると、取得した画像は明らかに現在のフルスクリーン ウィンドウを参照しています。フルスクリーン ウィンドウの背面を取得する必要があります。広範な調査の結果、その方法を見つけることに成功しませんでした。

おそらく(必ずしもそうとは限りませんが)Javaでライブラリまたはこれを実現する方法を知っていますか?

0 投票する
1 に答える
2205 参照

java - Java awt.Robot: 位置を指定してキーを送信します。右シフトまたは右 ctrl

java.awt.Robotこのクラスを使用して仮想キーボードを実装したいと考えています。メソッドを使用して、キーの位置(左または右)とともにキーコードを送信する方法があるかどうか疑問に思っていますkeyPress(int)KeyListenerawt 要素にa を追加すると、それが左または右のボタンであった場合、aKeyEventによってトリガーされるctrlか、情報が含まれます。shift

ドキュメントには次のように記載されています。

複数の物理キーが関連付けられているキー コード (たとえばKeyEvent.VK_SHIFT、左シフト キーまたは右シフト キーのいずれかを意味する可能性があります) は、左キーにマップされます。

right shiftしかし、本当に押されたものを送る方法はありませんか? 一部のアプリケーション (VirtualBox など) には、これらの右ボタンが必要です (確かに、これらのアプリケーションを構成することはできますが、仮想キーボードのオプションはありません)。

Robotそれで...クラスでこれを行う方法はありますか?Javaでより具体的なキーイベントを送信する別の方法はありますか?

0 投票する
2 に答える
5877 参照

java - Javaプリントスクリーンプログラム

RobotJavaで印刷画面の画像ファイルを作成しようとしています。これまでのところ:

しかし、ファイルを作成するためにそれを取得することができないようです。

0 投票する
3 に答える
3007 参照

java - Java - ロボットのキープレスの問題

Java コードからキーストローク (仮想キーボードなど) を送信しようとしていますが、いくつかの問題が発生します。通常のアプリケーション (メモ帳、ブラウザーなど) では完全に機能しますが、ゲーム (フルスクリーンまたはウィンドウ モード) では機能しません。

これは私が使用しているストリップされたコードです:

この問題はどのように修正できますか?