Seite 1 von 1
WinAPI: Relative Mausbewegung?
Verfasst: 24.07.2014 09:43
von Chimorin
Heyho,
ich habe jetzt schon knapp ne Stunde gegoogelt und finde einfach nicht das was ich haben will.
Ich würde gerne eine Funktion haben (WinAPi, was anderes wird wohl nicht gehen), die mir die relative Mausbewegung seit dem letzten Aufruf zurückgibt.
Die Sache über das Eventhandling geht leider nicht, es müsste schon eine Funktion sein.
Hat da jemand was parat?
Re: WinAPI: Relative Mausbewegung?
Verfasst: 24.07.2014 10:27
von NicTheQuick
Geht es um die Mausbewegung unabhängig von einem Fenster? Oder nur innerhalb von einem Fenster?
Im Grunde geht das ja auch so, oder?
Code: Alles auswählen
Procedure.i RelativeMouseX()
Static x.i = 0, first = #True, d.i
If first
x = DesktopMouseX()
first = #False
EndIf
d = DesktopMouseX() - x
x + d
ProcedureReturn d
EndProcedure
Procedure.i RelativeMouseY()
Static y.i = 0, first = #True, d.i
If first
y = DesktopMouseY()
first = #False
EndIf
d = DesktopMouseY() - y
y + d
ProcedureReturn d
EndProcedure
Repeat
Debug Str(RelativeMouseX()) + ", " + Str(RelativeMouseY())
Delay(100)
Until DesktopMouseX() = 0
Re: WinAPI: Relative Mausbewegung?
Verfasst: 24.07.2014 12:24
von Chimorin
Hmm, es sollte schon fensterunabhängig sein.
Deine Lösung habe ich mir auch schon als möglich eingetragen, es wäre aber schön, wenn es eine fertige Funktion dafür gäbe (Gibt es bestimmt auch).
Re: WinAPI: Relative Mausbewegung?
Verfasst: 24.07.2014 16:11
von NicTheQuick
Wenn du kein Fenster hast, gibt es jedenfalls schon mal keine Events, die du nutzen könntest. Demnach ist meine Lösung eigentlich schon fertig und vor allem plattformunabhängig. Wozu also noch API anstrengen? Die kann relative Koordinaten auch nicht besser berechnen.

Re: WinAPI: Relative Mausbewegung?
Verfasst: 24.07.2014 19:27
von Chimorin
Okay, okay. Ich habe schon WinAPI drinne, da habe ich gedacht es wäre einfacher es so zu machen.