問題タブ [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.
java - Java - アプリケーションの背後にあるスクリーン キャプチャ
画面をキャプチャする方法はありますが、アプリ自体は表示されません。フレームを最小化または非表示にする方法は知っていますが、これは毎秒(少なくとも毎秒)大量に発生するため、非常に高速に実行する必要があります。Windows Vista/7 の拡大鏡のようなものにしたい。(アプリは自分の後ろを見ることができます。)
java - プログラムによる Swing アプリケーションの実行 (リモートクラス)
自動的に実行しようとしているスイング アプリケーションのソース コード (またはコンパイルされたクラス) がないという、少し複雑なケースがあります。
このアプリケーションで一連のタスクを実行し、いくつかのボタンを押したり、いくつかの部分をクリックしたりします。これをプログラムで実行できるようにしたいと考えています。
私が遭遇したすべての Swing デバッガー/ロボットは、起動しているクラスを持っていることを望んでおり、デバッガーはクラスと一緒に起動します。
ここでの問題は、JNLP アプリケーションを起動することによってアプリケーションが起動されることです。JNLP アプリケーションは、私を認証し (ユーザー名とパスワードを入力する必要があります)、リモート サーバー上で一連のクラスを実行します。そして、Swing アプリケーションが起動します。
おそらく、swing アプリケーションにアタッチしてプログラムで実行できるようになりたいと考えています。申し訳ありませんが、これは複雑すぎるようですが、これがシナリオです...
仕方がないのかもしれませんが、その場合も教えてください...
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()
代わりにを使用できます。
問題についての有用な洞察を得ることができなかったので、私は皆さんに尋ねることを選びました。
java - WM_PAINT、Java、隠しウィンドウのキャプチャ
まず免責事項として、私は Java プログラマーであり、Windows API についてほとんど何も知りません。だから我慢してください。
私の目標は、Java を使用して非表示のウィンドウをキャプチャすることです。私のターゲット プラットフォームは Windows です。Robot
クラスが画面の表示部分をキャプチャするために使用されることは理解しています。ブラウジングした後、次の 3 つのリンクに出くわしました。これらは関連していると思われます。
- http://www.support.teamdev.com/thread/1930
- http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.ui/2006-02/msg00204.html
- http://www.fengyuan.com/article/wmprint.html
JxCapture は、Feng Yuan の記事が複雑であるのと同じくらい高価です。私の質問は、このフォーラムの達人が合理的な解決策を見つけるのを手伝ってくれるかどうかです. JxCapture で提案されているアプローチは、それほど複雑ではないようです。ヒントはありますか?Visual Basic スクリプトまたはこれを行う C# コードは、出発点として適しています。
ウィンドウが非表示のときにキープレス イベントまたはマウス プレス イベントを送信すると、強制的にウィンドウが再描画され、java.awt.Robot
. それは錯覚であり、うまくいきません。
一方、JxCapture スレッドのメッセージは 2006 年のものです。それ以来、Sun にはそのような機能が組み込まれているのに、私はそれを認識していないのでしょうか?
java - java 任意のオブジェクトの画面座標を取得する
Java を使用して、DOM 内の任意のオブジェクトの画面座標を取得しようとしています。
たとえば、ボタン名 () または Web または Windows アプリの任意のオブジェクト) を取得し、x、y 座標を返すコードを記述して、Java ロボットを使用してそのボタンでマウス操作を実行できるようにします。
よりダイナミックにしたいので、自分で座標を取得したくないので、その場で現在の座標を取得してロボットに渡し、オブジェクトと対話します。
どんな考えでも素晴らしいでしょう
java - java.awt.Robot をマウスドラッグイベントに応答させるにはどうすればよいですか?
共有ディスプレイ システムで使用するために、他のコンピューターのユーザーが JPanel のコンテンツを制御できるようにするクラスを作成しています。java.awt.Robot を使用すると、マウス クリックとキーボード入力を実行できますが、メソッドがありませんmouseDragged(MouseEvent evt)
。私のクライアントには、次のようなリスナーの一部としてclientMouseReleased
(および) メソッドがあります。Pressed
MouseAdapter
はjava.awt.RobotremoteDesktop
を含むクラスであり、クライアントが呼び出すメソッドでRobot.mouseMove
and Robot.mouseRelease
(または) を実行します。同じように、つまりRobot.mousePress
次のように記述できるようにしたいと思います。mouseDragged
java - ウィンドウの背面画像を取得するには?
視覚障害者向けのプログラムを作成しています。目的は、色、形など、画面の一部の機能を置き換えることです。現在、フルスクリーン ウィンドウがあり、(ロボットの Java ライブラリを介して) 画面のスナップショットを取得し、それをフルスクリーン ウィンドウに再現します。次のスクリーンショットを撮ろうとすると、取得した画像は明らかに現在のフルスクリーン ウィンドウを参照しています。フルスクリーン ウィンドウの背面を取得する必要があります。広範な調査の結果、その方法を見つけることに成功しませんでした。
おそらく(必ずしもそうとは限りませんが)Javaでライブラリまたはこれを実現する方法を知っていますか?
java - Java awt.Robot: 位置を指定してキーを送信します。右シフトまたは右 ctrl
java.awt.Robot
このクラスを使用して仮想キーボードを実装したいと考えています。メソッドを使用して、キーの位置(左または右)とともにキーコードを送信する方法があるかどうか疑問に思っていますkeyPress(int)
。KeyListener
awt 要素にa を追加すると、それが左または右のボタンであった場合、aKeyEvent
によってトリガーされるctrlか、情報が含まれます。shift
ドキュメントには次のように記載されています。
複数の物理キーが関連付けられているキー コード (たとえば
KeyEvent.VK_SHIFT
、左シフト キーまたは右シフト キーのいずれかを意味する可能性があります) は、左キーにマップされます。
right shiftしかし、本当に押されたものを送る方法はありませんか? 一部のアプリケーション (VirtualBox など) には、これらの右ボタンが必要です (確かに、これらのアプリケーションを構成することはできますが、仮想キーボードのオプションはありません)。
Robot
それで...クラスでこれを行う方法はありますか?Javaでより具体的なキーイベントを送信する別の方法はありますか?
java - Javaプリントスクリーンプログラム
Robot
Javaで印刷画面の画像ファイルを作成しようとしています。これまでのところ:
しかし、ファイルを作成するためにそれを取得することができないようです。
java - Java - ロボットのキープレスの問題
Java コードからキーストローク (仮想キーボードなど) を送信しようとしていますが、いくつかの問題が発生します。通常のアプリケーション (メモ帳、ブラウザーなど) では完全に機能しますが、ゲーム (フルスクリーンまたはウィンドウ モード) では機能しません。
これは私が使用しているストリップされたコードです:
この問題はどのように修正できますか?