23. januar 2012 - 19:56Der er
5 kommentarer og 1 løsning
Output som tastatur (debian)
Kan jeg sende et tastetryk (eller sende en streng, som computeren opfatter som adskillige tastetryk), på en eller anden måde, fra et C-program?
Jeg har lavet noget C-kode, der læser vægten fra en Dymo M10, og vil gerne indsætte værdien i et input-felt i en åben browser på computeren (hvor input-feltet har fokus)
Hvis der ikke er direkte understøttelse for det, overvejer jeg at kalde xdotool.
Jeg er ved at automatisere så meget af et pakkerum, som jeg kan komme til.
* Først scannes en faktura, så brugeren kan se ordren, og hvilke varer der skal pakkes. (stregkodelæseren sender ordrenummeret til et inputfelt i browseren, og trykker enter)
* Derefter skal brugeren pakke ordren, og placere den på en USB-vægt, og trykke på en knap (som jeg regner med at lave med en teensy)
* Dét tryk skal sende et hotkey-tryk, som mit script kan reagere på, og indsætte vægten, i et nyt input-felt i browseren.
* PHP-koden genererer en webpack-label (eller en adresse-etiket, hvis vægter en under 1kg), og gemmer den som pdf, og sender den til en labelprinter i pakkerummet.
* Brugeren sætter labelen på brevet/pakken, og smider den i "udbakken"
...og der er sådan set (nogenlunde) styr på alle punkterne, bortset fra det dette spørgsmål omhandler.
Det virker dog ikke til at xdotool er den værste løsning.
sprintf(buf, "/usr/bin/xdotool type '%g'", str); system(buf); system("/usr/bin/xdotool key return");
Nu er det meget meget lang tid siden jeg programmerede i X sidst, men jeg mener at kunne huske at der er X kald til at traverserer alle vindue og frames, selv i fremmede programmer. Når man så har vinduet er der et X kald til at sende et event (med tastetryk) til det vindue/frame/input felt, hmm måske kan man send eventet til hoved vinduet hvis det rigtige felt er valgt ...
OK, du kan være nød til at ændre tilladelserne i din X for at du må give events til fremmede vinduer, men det husker jeg ikke lige hvordan man gør men du kan jo eksperimenterer lidt med en shell og xdotool.
Jeg endte med at bruge xdotool. Men tak for hjælpen. Svar?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.