Tool oder Möglichekit zum wechslen von Maussensitivität und -beschleunigung gesucht

vandread

Lt. Commander
Registriert
Nov. 2004
Beiträge
1.372
Hallo Leute,

ich bin auf der Suche nach einer Möglichkeit oder einem kleinen Tool mit dem ich (perfekt wäre natürlich wenn es irgendwie automatisch gehen würde) zwischen zwei Einstellungen ("Profilen") bei den Windows-Maus-Einstellungen wechseln kann.

Um das ganze mal mit einem Anwendungsbeispiel zu beschreiben... Ich nutze auf der Arbeit ein Notebook welche via. Dockingstation am Schreibtisch mit einem Monitor, Maus und Tastatur verbunden wird. Wenn ich am Schreibtisch bin nutze ich gerne die Maus mit 3500 DPI und die Mausbeschleunigung ist aus. Die Maussensitivität ist genau in der Mitte (ich meine das müsste sogar der Windows-Default-Wert sein). Wenn ich nun aber mit dem Notebook unterwegs bin habe ich in der Regel keine Maus dabei und wenn dann würde ich bei der nativen Bildschirmauflösung des Notebooks mit 3500 DPI nicht ganz klar kommen, aber ist ein anderes Thema um das ich mich später kümmern will... Wenn ich also nun ohne Maus unterwegs bin nutze ich das Touchpad vom Notebook. Das Problem ist nun dass die Mausbeschleunigung aus ist und ich eigentlich beim Touchpad die Beschleunigung richtig gut finde. Jetzt muss ich aber jedes mal immer in die Einstellungen und den Haken setzen oder entfernen... Es wäre schön wenn das irgendwie mit einem Tool automatisch gehen würde oder wenn man das Touchpad anders konfigurieren kann als die Maus (so wie bei einem MacBook). Doch der Synaptic-Treiber des Touchpads gibt soweit ich das gesehen habe sowas nicht her (vielleicht muss hier noch was installiert werden?).

Ich konnte bis jetzt nur dieses Tool hier finden...
AutoSensitivity http://autosensitivity.codeplex.com/

Habe es noch nicht ausprobiert, aber so wie ich das sehe kann man damit Touchpad und Maus unabhängig voneinander konfigurieren, aber man kann keine Beschleunigung einstellen...

Eventuell kennt hier jemand eine Möglichkeit?

Danke!
 
Installiere mal die Touchpad Treiber vom Hersteller deines Notebooks und dann die Maus Treiber vom Hersteller deiner Maus. Ggf. kannst du so unterschiedliche Einstellungen treffen. In der Regel kommt mit dem Treiber auch die passende Software. Ggf lassen sich auch da Profile anlegen.
 
Die Treiber vom Touchpad sind wie schon erwähnt installiert. Es handelt sich dabei um den Treiber von Synaptics (das ist doch der 0815 Treiber für Touchpads). Bei dem Treiber kann ich aber nur Gesten und ein andere Kleinigkeiten einstellen. Beschleunigung oder Sensitivität lassen sich da nicht einstellen.

Die Treiber der Maus lassen sich zwar installieren aber nicht nutzen da diese leider sich mindestens ein mal mit dem Razer-Server verbinden müssen. Dieser ist natürlich im VPN geperrt (daher das kurz angerissene Problem mit dem Wechseln der DPI)...
 
Da bist du nicht alleine wer hat eine Lösung parat?

Meiner meinung nach müsste sowas direkt vom Hersteller kommen.

Andernfalls sehe Ich nicht, dass jemand dafür eine prog schreibt.
 
Also ich habe eine bzw. zwei Lösungen für dieses Problem gefungen... (:

Ich fange mal mit der einfachen aber nicht eleganten (nicht automatisch) Lösung an. Das Mittel zur Wahl heißt hier Mat (Mouse Acceleration Toggler). Dieses kleine Tool kann die aktuellen Maus-Geschwindigkeit auslesen bzw. anzeigen. Doch beim übergeben von speziellen Parametern lässt sich Geschwindigkeit und Beschleunigung einstellen (bei Bedarf kann man auch den Cursor ändern)!

Das Tool und eine Beschreibung findet man hier: Mat (Mouse Acceleration Toggler)

Will man also nun die Beschleunigung aktivieren bzw. deaktivieren legt man sich eine Verknüpfung an (z.B. auf den Desktop) und gibt noch bei den Eigenschaften der Verknüpfung den Parameter "accel=toggle" mit an. Nun kann man zwischen aktiv und inaktiv hin und her schalten. Leider gibt es keine Rückmeldung in welcher Einstellung man sich nun befindet. Das könnte man nun so lösen dass man sich einfach zwei Verknüpfungen anlegt, eine fürs einschalten und eine fürs ausschalten. So könnte man auch z.B. die Mausgeschwindkeit für die beiden Zustände einstellen.

Kommen wir nun zur eleganten Lösung (automatisch). Hier handelt es sich um ein Script namens Laptop Mouse Monitor welches über AutoHotkey ausgeführt wird. Das Script habe ich im AutohotKey-Forum gefunden. Das Script erkennt ob eine Maus angeschlossen wurde oder entfernt und schaltet zwischen zwei Profilen hin und her. Die Profile lassen sich natürlich einstellen (Beschleunigung und Sensitivität). Das Script sieht wie folgt aus:

Code:
/*
AutoHotkey Version: 1.x
Language:	English
Platform:	WinXP

Title:		Laptop Mouse Monitor
Author:		Wesley Treat, www.wesleytreat.com
Date:		May 2006

Script Function:
If a USB mouse is plugged into the laptop, optimize the pointer speed and
precision settings for the mouse. If it's not, optimize the settings
for the touch pad. Monitor for changes in mouse's presence.
*/


; ============================================================
; CONFIGURATION
; ============================================================

; ------------------------------------------------------------
; USER POINTER SETTINGS

; Mouse ID
; Check HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mouclass\Enum
; to determine the ID of your mouse. This should be the value of the key that
; appears and disappears when you plug in and unplug your mouse. You can
; probably just use "HID."

MouseID = HID


; Pointer Speed (1-20)
PadSpeed = 10
MouseSpeed = 12

; Enhance Pointer Precision
PadEnhance = 1
MouseEnhance = 0

; Precision Thresholds
PadThreshold1 = 6
PadThreshold2 = 10
MouseThreshold1 = 0
MouseThreshold2 = 0

; For details on precision and threshold settings, see
; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefSystemParametersInfo.asp
; under SPI_SETMOUSE. By default, thresholds 1 and 2 are "6" and "10" respectively.


; Use a tray icon?
TrayIcon = 1

; Tray Icons
; If you want the tray icon to reflect the current settings, enter a valid
; PadIcon and PadIconGroup. To use the only standard AutoHotkey icon, comment
; out all the icon locations.

MouseIcon = %A_WinDir%\system32\main.cpl
MouseIconGroup = 1

; The likely location of the Alps Touch Pad icon.
; PadIcon = %ProgramFiles%\Apoint\Apoint.exe
; PadIconGroup = 1

; The likely location of the Synaptics Touch Pad icon.
; PadIcon = %ProgramFiles%\Synaptics\SynTP\SynTPEnh.exe
; PadIconGroup = 1


; If you like, you can change the names for your devices. These names are
; reflected in the tooltips.
MouseName = Mouse
PadName = Touch Pad

; ------------------------------------------------------------
; SCRIPT SETTINGS - YOU SHOULDN'T NEED TO CHANGE ANYTHING BELOW THIS LINE.

If !TrayIcon
	Menu, Tray, NoIcon

; Constants
; Read more at the following:
; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/systemparametersinfo.asp
; http://www.pinvoke.net/search.aspx?search=SPI&namespace=%5BAll%5D
SPI_GETMOUSE =		0x0003
SPI_SETMOUSE =		0x0004
SPI_GETMOUSESPEED =	0x0070
SPI_SETMOUSESPEED =	0x0071

; Watch for hardware changes
OnMessage(0x219, "HardwareUpdate")

; Check whether or not the mouse exists to begin with and make sure the pointer
; settings match.
	Gosub, MouseCheck
	Gosub, ChangeSettings
	If !MousePresent and !FileExist(PadIcon) and FileExist(MouseIcon)
		Menu, Tray, Icon, %MouseIcon%, %MouseIconGroup%
	MouseLast = %MousePresent%
	ToolTip, Pointer Settings Set To: %CurrentName%
	Sleep, 2000
	ToolTip
	Return


Exit ; Everything above this line is run when the script is loaded.


; ============================================================
; FUNCTIONS & SUBROUTINES
; ============================================================

HardwareUpdate()
{
	Global MouseLast
	Global MousePresent
	Global CurrentName
	Gosub, MouseCheck
	; We might get phantom hardware-change messages, so make sure the status
	; of the mouse has actually changed before changing any settings.
	If MousePresent = %MouseLast%
		Exit
	Else
	{
		Gosub, ChangeSettings
		MouseLast = %MousePresent%	; Update mouse status.
		ToolTip, Pointer Settings Changed To: %CurrentName%
		Sleep, 2000
		ToolTip
	}
	Return
}

MouseCheck:
	MousePresent = 0
	Sleep, 1000	; Give the registry a moment to update.
	Loop, HKEY_LOCAL_MACHINE, SYSTEM\CurrentControlSet\Services\Mouclass\Enum, 0, 0
	{
		RegRead, CurrentValue
		IfInString, CurrentValue, %MouseID%
		{
			MousePresent = 1
			Break	; Don't check any more values.
		}
	}
	Return

ChangeSettings:
	If MousePresent
	{
		CurrentName = %MouseName%
		DeviceSpeed = %MouseSpeed%
		DeviceEnhance = %MouseEnhance%
		DeviceThreshold1 = %MouseThreshold1%
		DeviceThreshold2 = %MouseThreshold2%
		If TrayIcon and FileExist(MouseIcon)
			Menu, Tray, Icon, %MouseIcon%, %MouseIconGroup%
		Menu, Tray, Tip, Current Pointer Settings: %CurrentName%
	}
	Else
	{
		CurrentName = %PadName%
		DeviceSpeed = %PadSpeed%
		DeviceEnhance = %PadEnhance%
		DeviceThreshold1 = %PadThreshold1%
		DeviceThreshold2 = %PadThreshold2%
		If TrayIcon and FileExist(PadIcon)
			Menu, Tray, Icon, %PadIcon%, %PadIconGroup%
		Menu, Tray, Tip, Current Pointer Settings: %CurrentName%
	}

	VarSetCapacity(DeviceArray, 12, 0)
	InsertInteger(DeviceThreshold1, DeviceArray, 0)	; Reg. Value MouseThreshold1
	InsertInteger(DeviceThreshold2, DeviceArray, 4)	; Reg. Value MouseThreshold2
	InsertInteger(DeviceEnhance, DeviceArray, 8)		; Reg. Value MouseSpeed

	InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
	; The caller must ensure that pDest has sufficient capacity.  To preserve any existing contents in pDest,
	; only pSize number of bytes starting at pOffset are altered in it.
	{
		Loop %pSize%  ; Copy each byte in the integer into the structure as raw binary data.
			DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF)
	}

	; Keep this here for future reference.
	; DllCall("SystemParametersInfo", UInt, SPI_GETMOUSESPEED, UInt, 0, UIntP, SpeedCurrent, UInt, 0)

	; Change the pointer speed.
	DllCall("SystemParametersInfo", UInt, SPI_SETMOUSESPEED, UInt, 0, UInt, DeviceSpeed, UInt, 1)
	; Change the pointer precision settings.
	DllCall("SystemParametersInfo", UInt, SPI_SETMOUSE, UInt, 0, Str, DeviceArray, UInt, 1)
	Return

Das Script gibt es hier: Laptop Mouse Monitor
AutoHotkey gibt es hier: AutoHotkey

Das Script zeigt (wenn man Icons hinterlegt hat) im Tray an welches Profil aktiv ist und zeigt im Moment des umschaltens bzw. ein- und ausstecken der Maus mit einem Tooltip am Mauszeiger auf welches Profil geschaltet wurde. Das tolle an dem Script ist, man kann einfach alles nach belieben anpassen. Ich z.B. habe mir eigene Icons hinterlegt und habe die Tooltips an dem Mauszeiger entfernt weil ich die nicht schön fand. Außerdem habe ich am Code etwas angepasst damit gleich beim starten des Scripts das richtige Icon angezeigt wird und nicht erst das default Icon von AutoHotkey. Das Script einfach im Autostart verknüpfen und fertig... (:

So sah das auf meinem Testsystem aus:
2eh2yxab.png


Falls jemand interesse an meinen Einstellungen hat kann er sich ja einfach melden...
 
Zurück
Oben