Hab mir die Maus zugelegt und erste Tests gemacht. Im Folgenden gehe ich aber nur auf die "Bordelektronik" und den Treiber ein.
Die Aussage im Hardwareluxx Review, der Treiber sei ausgereift, kann ich nicht bestätigen. Es gibt einige Schwachpunkte und Unverständlichkeiten, die teilweise nur durch einen Blick ins Handbuch in Ansätzen erklärbar werden.
So gibt es z.B. die Möglichkeit, Tasten mit Rapidfire zu belegen und das Verhalten dieser Funktion auch genau einzustellen. Dazu wiederum gibt es drei Eingabefelder, in die man irgendwelche Zahlen einträgt. Erst im Handbuch erfährt man, wozu diese drei Werte dienen: Der erste legt die Anzahl der Durchläufe fest, der zweite, wie lange die Taste gedrückt wird und der dritte, wieviel Zeit zwischen zwei Tastendrücken vergehen soll.
Mit der Zeiteingabe gibts auch schon das erste Problem: Weder im Treiberfenster noch im Handbuch ist vermerkt, welche Zeiteinheit gemeint ist. OK, übrig bleibt der Logik nach eh nur eine Möglichkeit, nämlich daß die Zeit in 1000ms/255, also etwa 3,92ms Schritten angegeben wird. Ein Wert von z.B. "10" bedeutet eine Pause von um die 39,2ms.
Wenn man nun eine ganze Sekunde Pause haben möchte, trägt man im entsprechenden Feld "255" ein. Sollte man meinen. Tatsächlich aber schießen die "255" etwas über das Ziel hinaus, die Pause fällt länger aus als eine Sekunde. Um meiner Maus eine Pausenzeit von annähernd einer Sekunde aufzuzwingen, mußte ich im Feld "248" eintragen statt "255". Es kann gut sein, daß diese Abweichungen einer Serienstreuung unterliegen und Ihr beim Nachmessen andere Zahlen erhaltet.
Der größte Fehler an dieser Stelle des Treiberfensters ist jedoch, daß die Eingabefelder B und C vertauscht sind. In Feld B trägt man nicht ein, wie lange eine Taste gedrückt werden soll, sondern wie lange die Pause ist zwischen zwei Tastendrücken. Folglich trägt man dann in Feld C ein, wie lang die Pause zwischen zwei Tastendrücken ausfallen soll.
Dann gibts unten links, wenn man die "Advanced Settings" ausklappt, noch drei Slider mit den Bezeichnungen "Motion Sensitivity", "Double Click Speed" und "Button Response Time". Was die jeweils machen ist klar, aber auf welche Werte genau sie gerade eingestellt sind wird nicht genannt. Und zumindest die "Motion Sensitivity" Funktion möchte ich gerne ab- bzw auf Null stellen, damit die Mausbewegungen nicht interpoliert werden.
Wer um die Unzulänglichkeiten weiß, kann diese umgehen und hat so ein recht gutes Gerät.
Wer die Timingsachen und vertauschten Eingabefelder nachvollziehen will, kann sich das kostenlose
AutoIt von hier herunterladen und folgendes Script zur Zeitmessung verwenden:
Code:
#include <misc.au3>
#include <array.au3>
OnAutoItExitRegister("_Exit")
;##### muß Wert A der Rapid Fire Einstellung entsprechen #####
Global $durchlaeufe = 2
;##### muß Wert A der Rapid Fire Einstellung entsprechen #####
;##### Taste, auf die das Script anspringen soll (siehe unten die Sektion #cs bis #ce) #####
Global $taste = "01"
;##### Taste, auf die das Script anspringen soll (siehe unten die Sektion #cs bis #ce) #####
Global $dll = DllOpen("user32.dll")
While 1
Sleep(10)
If _IsPressed($taste, $dll) Then _timing($durchlaeufe, $taste)
WEnd
Func _timing($param1, $param2)
$start = TimerInit()
Local $aResults[1] = [0]
Local $sResults
Local $count
If $param1 < 1 Then $param1 = 1
For $i = 1 To $param1
Do
;
Until Not _IsPressed($param2, $dll)
_ArrayAdd($aResults, Round(TimerDiff($start), 3))
$start = TimerInit()
If $i = $param1 Then ExitLoop
Do
;
Until _IsPressed($param2, $dll)
_ArrayAdd($aResults, Round(TimerDiff($start), 3))
$start = TimerInit()
Next
$aResults[0] = UBound($aResults) - 1
For $i = 1 To $aResults[0] Step 2
$count += 1
Local $pressed = ""
Local $pause = ""
If $aResults[0] >= $i Then $sResults = $sResults & @CRLF & "Lauf " & $count & @TAB & "gedrückt gehalten:" & @TAB & $aResults[$i] & "ms"
If $aResults[0] >= $i + 1 Then $sResults = $sResults & @CRLF & @TAB & "Pause dazwischen:" & @TAB & $aResults[$i + 1] & "ms" & @CRLF
Next
MsgBox(0, "Timings", StringTrimLeft(StringReplace($sResults, ".", ","), 1))
EndFunc ;==>_timing
Func _Exit()
DllClose($dll)
Exit
EndFunc ;==>_Exit
#cs
Code Taste
01 Left mouse button
02 Right mouse button
04 Middle mouse button (three-button mouse)
05 Windows 2000/XP: X1 mouse button
06 Windows 2000/XP: X2 mouse button
08 BACKSPACE key
09 TAB key
0C CLEAR key
0D ENTER key
10 SHIFT key
11 CTRL key
12 ALT key
13 PAUSE key
14 CAPS LOCK key
1B ESC key
20 SPACEBAR
21 PAGE UP key
22 PAGE DOWN key
23 END key
24 HOME key
25 LEFT ARROW key
26 UP ARROW key
27 RIGHT ARROW key
28 DOWN ARROW key
29 SELECT key
2A PRINT key
2B EXECUTE key
2C PRINT SCREEN key
2D INS key
2E DEL key
30 0 key
31 1 key
32 2 key
33 3 key
34 4 key
35 5 key
36 6 key
37 7 key
38 8 key
39 9 key
41 A key
42 B key
43 C key
44 D key
45 E key
46 F key
47 G key
48 H key
49 I key
4A J key
4B K key
4C L key
4D M key
4E N key
4F O key
50 P key
51 Q key
52 R key
53 S key
54 T key
55 U key
56 V key
57 W key
58 X key
59 Y key
5A Z key
5B Left Windows key
5C Right Windows key
60 Numeric keypad 0 key
61 Numeric keypad 1 key
62 Numeric keypad 2 key
63 Numeric keypad 3 key
64 Numeric keypad 4 key
65 Numeric keypad 5 key
66 Numeric keypad 6 key
67 Numeric keypad 7 key
68 Numeric keypad 8 key
69 Numeric keypad 9 key
6A Multiply key
6B Add key
6C Separator key
6D Subtract key
6E Decimal key
6F Divide key
70 F1 key
71 F2 key
72 F3 key
73 F4 key
74 F5 key
75 F6 key
76 F7 key
77 F8 key
78 F9 key
79 F10 key
7A F11 key
7B F12 key
7C-7F F13 key - F16 key
80H-87H F17 key - F24 key
90 NUM LOCK key
91 SCROLL LOCK key
A0 Left SHIFT key
A1 Right SHIFT key
A2 Left CONTROL key
A3 Right CONTROL key
A4 Left MENU key
A5 Right MENU key
BA ;
BB =
BC ,
BD -
BE .
BF /
C0 `
DB [
DC \
DD ]
#ce
Einigermaßen präzise Zeitmessung ist ressourcenfressend. Damit das Script im Leerlauf aber dennoch kaum CPU Zyklen frißt, gibt es ziemlich oben den Befehl "sleep(10)". Wer den ersten Wert der Messung präziser haben möchte und auch hinterher daran denkt, das Script wieder abzuschalten, kann diese Zeile mit einem Semikolon auskommentieren.
Außerdem ist das Script auf nur zwei Durchläufe und die linke Maustaste ausgelegt. Wenn Ihr von mehr Durchläufen die Zeit nehmen oder eine andere Taste verwenden wollt, müßt Ihr es entsprechend anpassen.