Hallo zusammen,
ich habe folgendes Problem:
Von einem anderen Computer werden mir über COM1 auf mein WinXP-System Signale geschickt.
Diese Signale lese ich mittels qextserialport ein und möchte nun Windows ein Mausklick-Event unterjubeln.
Das Signal A soll z.B. einen Mausklick an der Position x,y simulieren, den Windows (in einem anderen Programm registriert) - bspw. um dort einen bestimmten Button zu treffen/drücken.
Wisst ihr, wie ich da vorgehen muss?
Grüße und danke!
Ps: WinXP Prof. SP2, Qt4.3, Dev-C++
Mauskommando in WinXP simulieren
Na ja zu mindest die Mausposition kannst Du mit
QCursor::setPos(x,y)
setzen. Allerdings stellt sich noch die Frage, wie das ist z.B. mit unterschiedlichen Bildschirmauflösungen auf Remote und zu steuerndem Device (nur so n Gedanke, kenne ja die genaue Applikation nicht).
Für die Emulation von einem Mausklick wirst Du dann wohl auf WIN32 API Befehle zurückgreifen müssen.
Mit einem #include <windows.h> und folgendem Code liese sich z.B. ein Mausklick mit der linken Maustaste simulieren:
Über entsprechende Preprozessoranweisungen und passendem Code für Linux und Mac wär's dann auch möglich das einigermaßen plattformunbhängig hin zu bekommen, soweit's das denn wirklich sein muss. Nur QT unterstützt's von Haus aus glaub ich nicht.
QCursor::setPos(x,y)
setzen. Allerdings stellt sich noch die Frage, wie das ist z.B. mit unterschiedlichen Bildschirmauflösungen auf Remote und zu steuerndem Device (nur so n Gedanke, kenne ja die genaue Applikation nicht).
Für die Emulation von einem Mausklick wirst Du dann wohl auf WIN32 API Befehle zurückgreifen müssen.
Mit einem #include <windows.h> und folgendem Code liese sich z.B. ein Mausklick mit der linken Maustaste simulieren:
Code: Alles auswählen
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, QCursor::pos().x(), QCursor::pos().y(), 0,0);Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel