Como sin duda se habrá enterado, UI Scripting tiene sus problemas y, en este caso particular, las preferencias del mouse , el código puede variar según la versión del sistema operativo y el tipo de mouse , por lo que es difícil proporcionarle el código que funcionará en su caso de uso. Para mostrarte, usaré dos ejemplos de código que funcionan para mí en mi sistema.
En un MacBook Pro con Apple Magic Mouse bajo OS X 10.8.6 el siguiente ejemplo < strong> ApplesScript code cambia el valor del Tracking slider :
if application "System Preferences" is running then ¬
tell application "System Preferences" to quit
delay 1
tell application "System Preferences"
reveal anchor "mouseTab" of pane id "com.apple.preference.mouse"
delay 1
tell application "System Events"
click of radio button 1 of tab group 1 of window 1 of application process "System Preferences"
set value of slider 1 of tab group 1 of window 1 of application process "System Preferences" to 4
end tell
quit
end tell
Enunescenariomousegenérico,elsiguienteejemploApplesScriptcódigocambiaelvalordeelControldevelocidaddeseguimiento:
ifapplication"System Preferences" is running then ¬
tell application "System Preferences" to quit
delay 1
tell application "System Preferences"
reveal anchor "mouseTab" of pane id "com.apple.preference.mouse"
delay 1
tell application "System Events"
set value of slider 3 of window 1 of application process "System Preferences" to 4
end tell
quit
end tell
ElrangodevaloresdelVelocidaddeseguimientocontroldeslizanteesunvalordecimalentre0
y9
.Tengaencuentaqueelrangodevaloresparalosotroscontrolesdeslizantesdifieren,Velocidaddedobleclicesde0
a10
,ydedesplazamientoLavelocidadesde0
a7
.Tambiéntengaencuentaqueestosrangospuedenvariardependiendodelaversióndelsistemaoperativoyelhardware.
ConPreferenciasdelsistemaabiertoenelRatónpanel,paraunratóngenérico,uselasiguientelíneadelcódigoenEditordesecuenciasdecomandosparaobtenerlaspropiedadesdeloscontrolesdeslizantes:
tellapplication"System Events" to get properties of every slider of window 1 of application process "System Preferences"
Verás los valores mínimos / máximos así como el valor en el que están configurados actualmente. Lo último es importante saber después de que se haya ajustado manualmente a su gusto y luego usarlo en script para realizar los cambios que desee.
Tenga en cuenta que con UI Scripting es posible que el valor de los comandos delay
deba ajustarse para su entorno y / o adicional delay
comandos pueden ser necesarios según corresponda.
También tenga en cuenta que el ejemplo ApplesScript código está codificado para cerrar primero Preferencias del sistema si está abierto. Esto se está haciendo para no tener que ver los eventos que se llevan a cabo, ya que la danza gráfica de algunas secuencias de comandos de la interfaz de usuario puede distraer.
Verás la diferencia entre las dos versiones de example ApplesScript code en la segunda, no solo no tiene ni necesita El comando click of radio button ...
, el slider
número es diferente, junto con su name
. En la primera versión, es slider 1
y Tracking
, mientras que en la segunda, es slider 3
y Tracking Speed
. Tampoco hay tab group
en la segunda versión.
Para abordar el punto hit to miss mencionado en el OP, con el escenario mouse genérico hay tres controles deslizantes , por lo que la siguiente línea del código para la velocidad de seguimiento :
set value of slider 3 of window 1 of application process "System Preferences" to 4
Se puede escribir como:
set value of every slider of window 1 of application process "System Preferences" whose name contains "track" to 4
Ahora no necesita saber qué número es slider
, ya que actuará sobre el único cuyo nombre contiene "track", que en este caso será slider 3
. El mismo concepto también se puede aplicar a otros UI elements
.
También puede ingresar el slider
por su name
, por ejemplo:
set value of slider "Tracking Speed" of window 1 of application process "System Preferences" whose name contains "track" to 4
Lo mismo ocurre con otros elementos de la interfaz de usuario que tienen una propiedad name
, en este caso, por ejemplo, window 1
también es: window "Mouse"
Nota: El ejemplo ApplesScript código es solo eso y no contiene ningún manejo de errores según sea apropiado / necesario / deseado. La responsabilidad es de que el usuario agregue manejo de errores según sea apropiado / necesario / deseado.