Linux, wie Bildschirm zu erfassen und Mausbewegungen zu simulieren

8

Ich muss den Bildschirm (als Druckbildschirm) so erfassen, dass ich auf Pixelfarbdaten zugreifen kann, um Bilder zu erkennen. Danach muss ich Mausereignisse auf dem Bildschirm erzeugen, wie Linksklick, Drag & Drop (Bewegen Sie die Maus, während die Taste gedrückt wird, und lassen Sie sie los). Sobald es fertig ist, wird das Bild gelöscht.

Hinweis: Ich muss den gesamten Bildschirm erfassen, den der Benutzer sehen kann, und ich muss Klicks außerhalb des Fensters meines Programms simulieren (wenn es einen Unterschied macht)

Spezifikation: Linux ubuntu Sprache: C ++

Die Leistung ist nicht sehr wichtig, die Funktion "Druckbild" wird alle 10 Sekunden ausgeführt. Die Dauer des Prozesses kann bis zu 24 Stunden betragen, daher muss die Methode stabil sein und der Speicher ist frei von Lecks (wie üblich):

Ich konnte in Windows mit Win GDI und einigen Windows-Ereignissen tun, aber ich weiß nicht, wie man es in Linux macht.

Vielen Dank

    
kirbo 09.04.2010, 11:35
quelle

2 Antworten

13
%Vor%

Erzeuge es und simuliere dann einen Klick auf x, y do:

%Vor%

d. h.

$ g ++ -lX11 sgmousesim2.cpp

$ ./a.out 123 13

Nur für den Fall, dass Sie noch interessiert sind.

    
axiom 09.01.2012, 18:02
quelle
1

Swinput ist eine Lösung zur Simulation von Maus- / Schlüsselereignissen. Sie müssen es wahrscheinlich für Ihren Kernel kompilieren. Xorg hat einige Header für die Aufzeichnung von Maus- / Schlüsselereignissen bereitgestellt, aber ich denke, es ist im Moment kaputt. Es gibt einen C code evtest , mit dem Ereignisse aus /dev/input/eventX erfasst werden können. , /dev/input/mice Dateien. Es kann hilfreich sein.

Bearbeiten:

Der Fehler wurde in der Xorg-Datensatzerweiterung behoben Arbeiten auch.

    
zoli2k 09.04.2010 11:58
quelle