Kiffi hat geschrieben:dann muss sich funkheld halt einen entsprechend großen Monitor kaufen


Wenn er die Maus um 90° verdreht montiert und statt der Y-Koordinaten die X-Koordinaten auswertet, hat er auch schon ein wenig gewonnen, da die gebräuchlichen Monitore ja mehr breit als hoch sind.
funkheld hat geschrieben:Hallo, ich habe jetzt mal ein Testprogramm gefunden, die Datenrate der Maus ist wesentlich höher wie das Purebasic diese verarbeiten kann. Besteht da eine Möglichkeit für Purebasic?
Ich nehme an, Du sprichst von dem dort genannten Programm "MouseRate". Aber wieso schließt Du aus den Werten die das Programm anzeigt, dass die Datenrate der Maus für die Verarbeitung in PureBasic zu hoch ist
Regenduft hat geschrieben:Und
Mausbeschleunigung sollte aus sein, sonst gibt's den "Exponential-Turboboost"

Guter Hinweis!
Ich kann mir auch vorstellen, dass man besser nicht den ganzen zur Verfügung stehenden Bildschirmbereich ausnutzen sollte, bevor man den Mauscursor zurücksetzt. Denn während der Cursor zurückgesetzt wird, läuft das Rad ja weiter. Daher hilft es evtl., einen "Pufferbereich" einzurichten. Dieser müsste umso größer sein, je schneller sich das Rad dreht. Das könnte etwa so aussehen:
Code: Alles auswählen
; PB 4.61 auf Windows XP SP3 32 Bit
; Hier wird eine Bewegung der Maus *von oben nach unten* vorausgesetzt.
EnableExplicit
Define event.i, maxY.i, prevY.i, curY.i, dy.i=0, counter.i=0, limit.i=500
OpenWindow(0, 0, 0, 300, 30, "Maus-Kilometerzähler", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(0, 10, 6, 200, 20, "")
ExamineDesktops()
maxY = DesktopHeight(0) - 100 ; 100 Pixel als "Pufferbereich" lassen
prevY = DesktopMouseY()
Repeat
event = WindowEvent()
If event = 0
curY = DesktopMouseY()
dy + (curY - prevY)
If dy >= limit
counter + 1
dy - limit
EndIf
If curY < maxY
prevY = curY
Else
SetCursorPos_(0, 0)
prevY = 0
EndIf
SetGadgetText(0, "dy = " + Str(dy) + ", counter = " + Str(counter))
Delay(20)
EndIf
Until Event = #PB_Event_CloseWindow
Grüße, Nino