giovedì 3 luglio 2008

Velocità del mouse variabile

A chi è piaciuto il programma Autohotkey che ho segnalato un po' di tempo fa, e a chi ancora si deve convincere, mostro la soluzione ad un problema che ho appena risolto.
Ho un portatile, e uso il touchpad. Quando lo collego alla scrivania, con monitor, tastiera, mouse, etc, ho bisogno di avere una velocità diversa per il puntatore, perché touchpad e mouse hanno sensibilità molto diverse.
Finora risistemavo la velocità manualmente ogni volta (e mi capita anche più volte al giorno, che palle).

Ora l'ho finalmente automatizzato, con Autohotkey. Quest'ultimo permette di avere delle operazioni timerizzate. Così ho fatto in modo che ogni 3 secondi, controlli se c'è il mouse esterno attaccato, e in base a questo imposti una velocità anziché un'altra. Sono bastate pochissime righe.
Nel dettaglio:
  1. prima chiedo ad un'utility (devcon) di cercare il mouse; l'output va in un file;
  2. so che se il mouse c'è, l'output/file ha una dimensione maggiore; in base a questo decido la velocità del puntatore;
  3. chiamata di sistema per impostare la velocità.
Questo è lo script che fa il tutto
#Persistent
setTimer, autoMouseSpeed, 3000

autoMouseSpeed:
Run, %comspec% /c devcon find *mouse* > %temp%\devcon.mouse.txt, ,hide
filegetsize, size, %temp%\devcon.mouse.txt
if (size < 50)
speed:=20
else
speed:=7
DllCall("SystemParametersInfo", Int,113, Int,0, UInt,speed, Int,2)
return

2 commenti:

Anonimo ha detto...

ottimo e utilissimo. credo sia un problema comune a mezzo mondo.

Anonimo ha detto...

complimenti, ottimo script e soprattutto...ottima idea!!!
Ingegneristicamente perfetto :D :D