プログラムによるXアプリケーションとの対話


8

GTK +を使用して構築されたアプリケーションがあります。アプリケーションのインターフェースは非常にシンプルです。起動すると、同じウィンドウが常に開き、いくつかの入力コントロールがあります。

いくつかのフィールドにテキストを入力するスクリプトを記述し、チェックボックスをオンにして、ボタンをクリックします。かなりシンプルで、アプリのコマンドラインバージョンが利用可能であれば簡単に実行できます(ただし、利用できません)。

プログラムでXアプリケーションと対話するアプローチの最良の方法は何ですか?

回答:


9

xdotool(Ubuntuのmanページ)を見てください。

それは非常に強力であり、あなたが必要とするものは何でもできるはずです。

http://www.semicomplete.com/projects/xdotool/xdotool.xhtml


の使用はxdotool、実際の緊急の場合にのみ考慮されるべきだと思います!シリアスなものをスクリプト化xdotoolすることは、喜びというよりも痛みです。試す前にxdotool、アプリケーションにdbusインターフェースがあるかどうかを開発者に尋ねてください。それはあなたの計画をずっと簡単にするでしょう。
user1146332 2013

1
@ user1146332私はxdotool問題なくさまざまなタスクに使用しています。私は喜びよりも痛みが何に基づいているのか正確にはわかりません。
LinuxSecurityFreak 2018年

同様の状況でxdotoolを使用していますが、1つの問題は、イベントの送信先のウィンドウを確認できないことです。1つの問題は非決定的なタイミングです。Xプログラムが1つのイベントを処理するのに時間が必要で、次のイベントが早すぎると無視する場合は、十分な長さのスリープポーズを追加する必要がありますが、十分な長さはわかりません。
Hans-Martin Mosner 2018年

3

xtexautomationの一部は、XTest拡張機能を使用して偽のX11入力を生成するために使用できる別のツールです。

ホームページから:

スクリプトのコマンドラインからXを制御し、「ビジュアルスクレイピング」を実行して画面上のものを見つけます。制御インターフェイスは、マウスの移動、クリック、ボタンのアップ/ダウン、キーのアップ/ダウンなどを可能にし、XTest拡張機能を使用するので、アプリが送信されたイベントを無視するときにxseが抱える厄介な問題は発生しません。visgrepプログラムは、画像内の画像を検索して座標を報告し、プログラムがクリックして画面上のボタンなどを検索できるようにします。


0

Xteは動作しますが、それは本当に古いです。xdotoolは少なくとも活発に開発されています。

Xウィンドウイベントの生成について多くの研究を行いました。名目上は文字列を入力できるキーボードマクロプログラム、または通常は貼り付けを使用できないアプリケーションのクリップボードを開発するためです。

Xウィンドウのイベント処理の注意事項... http://www.ict.griffith.edu.au/anthony/info/X/event_handling.txt

キーボードマクロ(xteまたはxdotool http://www.ict.griffith.edu.au/anthony/software/#keyboard_macroを使用)


リンクの良い情報、なぜ誰かがこの回答に反対票を投じたのですか?+1ですが、記事の冒頭にあるアプリの概要はできるだけ少なくすることをお勧めします。
Badr Elmers
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.