Berinteraksi dengan aplikasi X secara terprogram

8

Saya memiliki aplikasi yang dibangun menggunakan GTK +. Aplikasi ini memiliki antarmuka yang sangat sederhana. Ketika dimulai, jendela yang sama selalu terbuka, dengan beberapa kontrol input.

Kami ingin menulis skrip untuk mengisi teks dalam beberapa bidang, centang kotak centang, lalu klik tombol. Cukup sederhana, dan akan mudah dilakukan jika versi baris perintah dari aplikasi tersedia (tetapi tidak).

Apa cara terbaik untuk pendekatan berinteraksi dengan aplikasi X secara terprogram?

Tom Marthenal
sumber

Jawaban:

9

Lihat xdotool ( halaman manual Ubuntu ).

Ini sangat kuat dan harus dapat melakukan apa pun yang Anda butuhkan.

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

slm
sumber
Saya pikir penggunaan xdotoolhanya harus dipertimbangkan dalam kasus darurat nyata! Menulis sesuatu yang serius xdotoollebih menyakitkan daripada kesenangan. Sebelum Anda mencoba, xdotooltanyakan pengembang apakah aplikasi memiliki dbusantarmuka. Itu akan membuat rencana Anda lebih sederhana.
user1146332
1
@ user1146332 Saya menggunakan xdotooluntuk berbagai tugas tanpa masalah. Saya tidak tahu persis apa yang lebih merupakan rasa sakit daripada kesenangan .
LinuxSecurityFreak
Saya menggunakan xdotool dalam situasi yang sama, dan satu hal yang menyebalkan adalah ia tidak bisa melihat ke jendela tempat ia mengirim acara. Salah satu masalah adalah waktu nondeterministik: Jika program X membutuhkan waktu untuk memproses satu peristiwa dan akan mengabaikan acara berikutnya ketika datang terlalu dini, Anda perlu menambahkan jeda tidur yang murah hati, tetapi Anda tidak pernah tahu berapa lama cukup lama.
Hans-Martin Mosner
3

xte, bagian dari xautomation adalah alat lain yang dapat Anda gunakan untuk menghasilkan input X11 palsu menggunakan ekstensi XTest.

Dari beranda:

Kontrol X dari baris perintah untuk skrip, dan lakukan "goresan visual" untuk menemukan hal-hal di layar. Antarmuka kontrol memungkinkan pergerakan mouse, mengklik, tombol naik / turun, tombol naik / turun, dll, dan menggunakan ekstensi XTest sehingga Anda tidak memiliki masalah menjengkelkan yang dimiliki xse ketika aplikasi mengabaikan acara yang dikirim. Program visgrep menemukan gambar di dalam gambar dan melaporkan koordinat, memungkinkan progam untuk menemukan tombol, dll, pada layar untuk mengklik.

gioele
sumber
0

Xte berfungsi tetapi ini benar-benar tua. xdotool setidaknya dalam pengembangan aktif.

Saya melakukan banyak penelitian untuk menghasilkan acara X Windows, secara nominal untuk mengembangkan program makro keyboard yang dapat mengetik string, atau clipboard dalam aplikasi yang biasanya tidak memungkinkan Anda untuk menggunakan tempel.

Catatan Penanganan Acara X Window ... http://www.ict.griffith.edu.au/anthony/info/X/event_handling.txt

Keyboard Macro (menggunakan xte atau xdotool http://www.ict.griffith.edu.au/anthony/software/#keyboard_macro

anthony
sumber
info bagus di tautan, mengapa seseorang menurunkan jawaban ini? +1 tetapi akan lebih baik untuk menyertakan ringkasan aplikasi yang ditemukan di awal artikel dengan kurang.
Badr Elmers