Mauskommando in WinXP simulieren

Alles rund um die Programmierung mit Qt
Antworten
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Mauskommando in WinXP simulieren

Beitrag 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++
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich denke, daß du mit den Qt-Bibliotheken nicht weit kommen wirst.
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag 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.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Antworten