ClipCursor: Den Mauszeiger einsperren
Erstellt von Daniel SchuhmannJan 26
Wer mit mehreren Monitoren arbeitet, kennt das Problem sicher: In einer Vollbildanwendung oder in einem Spiel wird der Mauszeiger nicht innerhalb des Fensters gehalten, man rutscht versehentlich auf den zweiten Monitor und gerät aus der Anwendung heraus.

Mehrere Monitore: Hier benötigt man CursorClip am häufigsten
Oder es tritt genau der umgekehrte Fall ein: Eine Anwendung »sperrt den Mauszeiger ein«, aber man möchte diese kurzzeitig mit der Maus verlassen. Hier kommt die Funktion ClipCursor ins Spiel.
Eine einfache Umsetzung der Funktion bietet das Programm CursorClip (der Programmname musste vertauscht werden, damit keine doppelten Bezeichner auftreten): Vier Parameter bilden die jeweiligen Grenzpunkte und werden dann in ein TRect kopiert. Durch die Funktion StrToIntDef wird eine Exception durch ungültige Parameter verhindert. Anschließend wird mit dem angelegten TRect die Funktion ClipCursor ausgeführt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | program CursorClip; uses Windows, SysUtils; var rect: TRect; begin If ParamCount <> 4 then begin MessageBox(0, 'Es wurden keine Koordinaten angegeben. Sie '+ 'müssen die Koordinaten als Parameter im '+ 'folgenden Format übergeben:'+ #13#13+ 'X1'#9'Position von links'#13+ 'Y1'#9'Position von oben'#13+ 'X2'#9'Position rechts'#13+ 'Y2'#9'Position unten'#13+ #13+ 'Beispiel: Cursorclip 10 10 600 400', 'Keine Koordinaten angegeben', MB_OK or MB_ICONERROR); Exit; end; rect.Left := StrToIntDef(ParamStr(1), 0); rect.Top := StrToIntDef(ParamStr(2), 0); rect.Right := StrToIntDef(ParamStr(3), 0); rect.Bottom := StrToIntDef(ParamStr(4), 0); ClipCursor(@rect); end. |
Die Deaktivierung der Funktion geht noch einfacher: Hier genügt ein Aufruf von ClipCursor mit dem Parameter nil.
1 2 3 4 5 6 7 8 | program CursorUnClip; uses Windows; begin ClipCursor(nil); end. |
Die ClipCursor-Einstellung ist nur in der jeweils laufenden Anwendung aktiv. Wird auf eine andere Anwendung umgeschaltet oder die Windows-Taste gedrückt, wird die Einstellung wieder zurückgesetzt. Soll die Einstellung über einen Anwendungswechsel hinweg ständig gültig sein, muss sie zyklisch erneuert werden, beispielsweise über einen Timer.
Hinweis: Eine Beispielanwendung mit Timer und Aktivierung über ein TNA-Icon ist in den Downloads enthalten. Denken Sie daran, dass die Deaktivierung nur erfolgen kann, wenn der TNA-Bereich in der Taskleiste innerhalb des Clip-Bereichs liegt. Ist dies nicht der Fall, drücken Sie Strg+Shift+ESC, um den Taskmanager zu öffnen, navigieren Sie mit Strg+Tab zum Reiter Prozesse, wählen Sie mit Tab und den Pfeiltasten den Prozess CursorClip.exe und beenden Sie ihn mit der Entfernen-Taste. Nach einem Anwendungswechsel oder Druck auf die Windows-Taste ist die Maus wieder frei.
Download
CursorClip und CursorUnClip Quelltexte und Programme (28 KB)
CursorClip mit Timer-Funktion und TNA-Icon (16 KB)
Anwendung CursorPos zur Ermittlung der Positionsangaben (23 KB)
Keine Kommentare
Sie müssen angemeldet sein, um einen Kommentar zu schreiben.