Maustreiber mittels Virtal-HID
-
Hi,
ich bekomme über eine (beliebige) Schnittstelle die x,y-Koordinaten eines Touchpads in mein C++ Programm geliefert. Nun möchte ich diese Daten nutzen um die Maus zu steuern. Und zwar auch außerhalb meines Programmes.
Meine Idee ist, in dem C++ Programm ein Virtal-HID zu erstellen, welches dann als Maus erkannt wird.
Ist das möglich und wenn ja, wo finde ich ein gutes Beispiel oder eine gute Dokumentation zum Virtual-HID ?
Gruß Tobi
-
Was spricht gegen SetCursorPos?
-
Die Maus soll auch noch bedient werden, wenn ein anderes Programm geöffnet wird.
-
Verwende SendInput, ist 100x einfacher.
-
Das werde ich mir mal genauer angucken. Danke.
Gibt es dennoch ein anschauliches Beispiel für die Verwendung von eines Virtual-HID ?
-
Wenn dann vermutlich im DDK.
-
Tobi_25 schrieb:
Die Maus soll auch noch bedient werden, wenn ein anderes Programm geöffnet wird.
Das funktioniert doch. Du kannst weiterhin die Maus bewegen und per SetCursorPos den Cursor bewegen egal welches Programm offen oder im Vordergrund ist (mit genug Rechten).
Meinst du dass du auch klicken willst? Dann kannst du mit WindowFromPoint + GetCursorPos das Fenster an der Cursorposition bekommen und mit SendMessage oder SendInput den Klick simulieren.
Wenn du einen Bot schreiben willst und HackShield nervt, dann sollte das Starten deines Programms als Admin das Problem beheben.
Möglicherweise tut auch ein Mousehook was du willst.
-
Ja ich möchte auch klicken können. Es soll halt wie eine normale Maus genutzt werden können
-
nwp3 schrieb:
Tobi_25 schrieb:
Die Maus soll auch noch bedient werden, wenn ein anderes Programm geöffnet wird.
Das funktioniert doch. Du kannst weiterhin die Maus bewegen und per SetCursorPos den Cursor bewegen egal welches Programm offen oder im Vordergrund ist (mit genug Rechten).
Meinst du dass du auch klicken willst? Dann kannst du mit WindowFromPoint + GetCursorPos das Fenster an der Cursorposition bekommen und mit SendMessageNein, das funktioniert nicht.
oder SendInput den Klick simulieren.
Wieso dann erst die Hälfte mit was anderem machen?
-
Also alles mit SendInput machen?
Ich hab halt mein Touchpad, welches mir x und y Koordinaten über eine Schnittstelle an den PC sendet. Diese Koordinaten möchte ich auswerten und damit den Cursor bewegen und auch einfach Klicken.
So wie ich das jetzt verstanden habe, sollte das nur mit SendInput klappen oder irre ich mich?
-
Es soll natürlich auch möglich sein, die Maus außerhalb meines Programmes mit dem Touchpad zu bedienen!
-
OMG Freund probier es doch einfach, das sind 2 1/2 Zeilen Code
Ja, das geht alles.
Mit SendInput() kannst du komplett den Cursor steuern, genau so wie wenn da eine echte Maus mit einem echten Maustreiber wäre. Also inklusive Klicken und allem. Du kannst sowohl absolute als auch relative Positionen schicken, alles kein Problem.Was du anscheinend nicht kannst, ist die MSDN zu lesen.