Come utilizzare lo script della GUI AppleScript per modificare la velocità del mouse?

1

Uso un Mac a scuola, che ripristina tutte le impostazioni una volta disconnessi. Vorrei impostare automaticamente alcune impostazioni nelle preferenze di sistema.

Ho trovato una risposta qui che descrive come modificare il comportamento di scorrimento naturale nelle preferenze di sistema. Sfortunatamente, questo non aiuta a cambiare la velocità del mouse. Inoltre, ho notato che multare il numero della casella di controllo in AppleScript è un processo molto approssimativo. La casella di controllo 1 potrebbe attivare una casella di controllo nella parte inferiore di una particolare pagina delle impostazioni, mentre la casella di controllo 2 potrebbe attivarne una nel mezzo da qualche parte. Non sono sicuro se sarò in grado di scoprire come cambiare un cursore a causa di questa "casualità".

Qualcuno sa come cambiare il cursore usando lo scripting della GUI?

    
posta Skeleton Bow 26.01.2018 - 00:14
fonte

1 risposta

3

Come hai sicuramente scoperto, UI Scripting ha i suoi problemi e in questo caso particolare, le preferenze del mouse , il codice può variare in base alla versione del sistema operativo e al tipo di mouse , rendendo così difficile fornire codice che funzionerà perfettamente nello scenario del caso d'uso. Per mostrarti, utilizzerò due esempi di codice che funzionano per me sul mio sistema.

Su un MacBook Pro con un Apple Magic Mouse in OS X 10.8.6 il seguente esempio < strong> ApplesScript codice modifica il valore del Tracciamento 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


Inunoscenariomousegenerico,ilseguenteesempioApplesScriptcodicecambiailvaloredilavelocitàditracciamentoslider:

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

Ilintervallodivaloridellavelocitàditracciamentosliderèunvaloredecimaletra0e9.Notacheilintervallodivaloriperglialtrisliderdifferisce,Velocitàadoppioclicè0a10eScorrimentoLavelocitàè0in7.Sinotiinoltrechequestiintervallipossonomoltoasecondadellaversionedelsistemaoperativoedell'hardware.

ConPreferenzedisistemaapertoalmouseriquadro,perunoscenariomousegenerico,utilizzalaseguenterigadicodiceinScriptEditorperottenereleproprietàdeislider:

tellapplication"System Events" to get properties of every slider of window 1 of application process "System Preferences"

Vedrai i valori minimi / massimi così come il valore al quale sono attualmente impostati. La successiva è importante sapere dopo aver regolato manualmente a tuo piacimento e quindi utilizzare lo script per apportare le modifiche desiderate.

Tieni presente che con UI Scripting il valore dei delay comandi potrebbe dover essere regolato per il tuo ambiente eo aggiuntivo delay comandi potrebbero essere necessari a seconda dei casi.

Nota inoltre che il esempio ApplesScript codice è codificato per chiudere prima Preferenze di Sistema se è aperto. Questo viene fatto in modo da non dover vedere gli eventi che si verificano quando la danza grafica di alcuni UI Scripting può essere fonte di distrazione.

Vedrai la differenza tra le due versioni di esempio ApplesScript codice nella seconda, non solo non ha né ha bisogno il click of radio button ... comando , il slider numero è diverso, insieme al name . Nella prima versione è slider 1 e Tracking dove come nel secondo è slider 3 e Tracking Speed . Non c'è anche tab group nella seconda versione.

Per affrontare il punto hit to miss menzionato nell'OP, con lo scenario mouse generico ci sono tre slider , quindi la riga seguente di codice per velocità di tracciamento :

set value of slider 3 of window 1 of application process "System Preferences" to 4

Può essere scritto come:

set value of every slider of window 1 of application process "System Preferences" whose name contains "track" to 4

Ora non è necessario sapere quale numero il slider è come agirà sull'unico il cui nome contiene "traccia", che in questo caso sarà slider 3 . Lo stesso concetto può essere applicato anche ad altri UI elements .

Puoi anche indirizzare slider al suo name , ad esempio:

set value of slider "Tracking Speed" of window 1 of application process "System Preferences" whose name contains "track" to 4

Lo stesso vale per altri elementi dell'interfaccia utente che hanno una name proprietà , ad esempio, window 1 è anche: window "Mouse"

Nota: il esempio ApplesScript codice è proprio questo e non contiene alcuna gestione degli errori come può essere appropriato / necessario / voluto. L'onere spetta all'utente di aggiungere la gestione degli errori come appropriato / necessario / voluto.

    
risposta data 26.01.2018 - 17:16
fonte

Leggi altre domande sui tag