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èunvaloredecimaletra0
e9
.Notacheilintervallodivaloriperglialtrisliderdifferisce,Velocitàadoppioclicè0
a10
eScorrimentoLavelocitàè0
in7
.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.