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
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.
Tags und Links c++ linux screen-capture mouseevent