Seite 1 von 1

Mauskommando in WinXP simulieren

Verfasst: 11. April 2007 14:54
von Davidave
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++

Verfasst: 11. April 2007 18:55
von upsala
Ich denke, daß du mit den Qt-Bibliotheken nicht weit kommen wirst.

Verfasst: 11. April 2007 21:55
von Volker
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:


Code: Alles auswählen

mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, QCursor::pos().x(), QCursor::pos().y(), 0,0);
Ü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.