Interazione con le applicazioni X a livello di codice


8

Ho un'applicazione costruita usando GTK +. L'applicazione ha un'interfaccia molto semplice. All'avvio, si apre sempre la stessa finestra, con alcuni controlli di input.

Vogliamo scrivere uno script per compilare il testo in un paio di campi, selezionare una casella di controllo, quindi fare clic su un pulsante. Abbastanza semplice e sarebbe facile da fare se fosse disponibile una versione da riga di comando dell'app (ma non lo è).

Qual è il modo migliore per avvicinarsi all'interazione con un'applicazione X a livello di codice?

Risposte:


9

Dai un'occhiata a xdotool ( pagina man di Ubuntu ).

È estremamente potente e dovrebbe essere in grado di fare tutto ciò di cui hai bisogno.

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


penso che l'uso di xdotooldovrebbe essere considerato solo in casi di emergenza reali! Scrivere qualcosa di serio xdotoolè più un dolore che un piacere. Prima di provare, xdotoolchiedi allo sviluppatore se l'applicazione ha dbusun'interfaccia. Ciò renderebbe il tuo piano molto più semplice.
user1146332

1
@ user1146332 Sto usando xdotoolper vari compiti senza problemi. Non so su cosa si basi esattamente un dolore che un piacere .
LinuxSecurityFreak

Sto usando xdotool in una situazione simile, e una cosa che fa male è che non riesce a guardare la finestra a cui sta inviando gli eventi. Un problema è il tempismo non deterministico: se il programma X ha bisogno di un po 'di tempo per elaborare un evento e ignora l'evento successivo quando è arrivato troppo presto, devi aggiungere pause di sonno generose, ma non sai mai quanto tempo è abbastanza lungo.
Hans-Martin Mosner,

3

xte, parte di xautomation è un altro strumento che è possibile utilizzare per generare input X11 falsi utilizzando l'estensione XTest.

Dalla homepage:

Controlla X dalla riga di comando per gli script ed esegui "scraping visivo" per trovare elementi sullo schermo. L'interfaccia di controllo consente il movimento del mouse, il clic, il pulsante su / giù, il tasto su / giù, ecc. E utilizza l'estensione XTest in modo da non avere i fastidiosi problemi che xse ha quando le app ignorano gli eventi inviati. Il programma visgrep trova le immagini all'interno delle immagini e riporta le coordinate, consentendo ai programmi di trovare pulsanti, ecc., Sullo schermo su cui fare clic.


0

Xte funziona ma è davvero vecchio. xdotool è almeno in sviluppo attivo.

Ho studiato a fondo la generazione di eventi X Windows, nominalmente per sviluppare un programma macro per tastiera in grado di digitare stringhe o gli Appunti in applicazioni che normalmente non consentono di utilizzare Incolla.

Note sulla gestione degli eventi di X Window ... http://www.ict.griffith.edu.au/anthony/info/X/event_handling.txt

Tastiera Macro (utilizzando xte o xdotool http://www.ict.griffith.edu.au/anthony/software/#keyboard_macro


buone informazioni nei link, perché qualcuno ha votato in negativo questa risposta? +1 ma sarà meglio includere il riepilogo delle app trovate all'inizio dell'articolo in meno.
Badr Elmers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.