¿Cómo utilizo el script de GUI de AppleScript para cambiar la velocidad del mouse?

1

Utilizo una Mac en la escuela que restablece todos los ajustes una vez que se desconecta. Me gustaría establecer automáticamente algunas configuraciones en las preferencias del sistema.

Encontré una respuesta aquí que describía cómo cambiar el comportamiento de desplazamiento natural en las preferencias del sistema. Desafortunadamente, esto no ayuda a cambiar la velocidad del mouse. Además, me he dado cuenta de que multar el número de casilla de verificación en AppleScript es un proceso muy improductivo. La casilla de verificación 1 puede activar una casilla de verificación en la parte inferior de una página de configuración particular, mientras que la casilla de verificación 2 puede activar una en el medio en algún lugar. Me siento incierto si podré descubrir cómo cambiar un control deslizante debido a esta "aleatoriedad".

¿Alguien sabe cómo cambiar el control deslizante mediante las secuencias de comandos GUI?

    
pregunta Skeleton Bow 26.01.2018 - 00:14

1 respuesta

3

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

ElrangodevaloresdelVelocidaddeseguimientocontroldeslizanteesunvalordecimalentre0y9.Tengaencuentaqueelrangodevaloresparalosotroscontrolesdeslizantesdifieren,Velocidaddedobleclicesde0a10,ydedesplazamientoLavelocidadesde0a7.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.

    
respondido por el user3439894 26.01.2018 - 17:16

Lea otras preguntas en las etiquetas