Cambiar la resolución de LG UltraFine a través de AppleScript

Me gustaría tener un AppleScript que alterne entre "Pnetworkingeterminado para mostrar" en Preferences del sistema y "Escalado" "Texto más grande".

La secuencia de commands debe detectar el estado actual de la pantalla y alternar con el otro estado (es decir, si en Pnetworkingeterminado para la pantalla, cambie a text más grande).

Llegué hasta aquí con mi script (que obtuve de este sitio y esta página stackexchange ), pero parece que no puedo prácticamente hacer "clic" en el ícono más a la izquierda de los cinco disponibles:

tell application "System Preferences" activate set the current pane to pane id "com.apple.preference.displays" reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays" end tell local indexToUse -- Now lets make the necessary changes tell application "System Events" tell tab group 1 of window "LG UltraFine" of application process "System Preferences" of application "System Events" tell radio group 1 if (value of radio button "Scaled") = 0 then -- Click the "Scaled" radio button click radio button "Scaled" tell radio group 2 click radio button 1 of radio group 2 end tell else click radio button "Default for display" end if end tell end tell end tell -- Quit "System Preferences" quit application "System Preferences" 

Al ejecutar el script, si las Preferences del sistema están en "Pnetworkingeterminado para mostrar", recibo el siguiente error de secuencia de commands: System Events got an error: Can't get radio group 2 of radio group 1 of tab group 1 of window "LG UltraFine" of application process "System Preferences". Invalid index. System Events got an error: Can't get radio group 2 of radio group 1 of tab group 1 of window "LG UltraFine" of application process "System Preferences". Invalid index.

Me gustaría poder hacer clic en el button con un círculo rojo en la captura de pantalla adjunta. Captura de pantalla de Preferencias del sistema → Pantallas → Escalado

2 Solutions collect form web for “Cambiar la resolución de LG UltraFine a través de AppleScript”

Gracias a @ wch1zpink y la sugerencia de usar la opción Watch Me Do en Automator, aquí hay un script que finalmente parece hacer el trabajo:

 -- Portions of the script found on https://gist.github.com/mvaneijgen/2f48f859ca07d2e75b3a -- Launch "System Preferences", open the "Displays" options and change to the "Display" tab (* If error "System Events got an error: Script Editor is not allowed assistive access" appears, then System Preferences → Security & Privacy → Privacy → add Script Editor to "Allow the app to control your computer"*) (* as per: https://stackoverflow.com/questions/31019916/is-not-allowed-for-assistive-access-error-when-running-applescript-from-java) *) tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays" end tell -- Now lets make the necessary changes tell application "System Events" tell tab group 1 of window "LG UltraFine" of application process "System Preferences" of application "System Events" tell radio group 1 if (value of radio button "Scaled") = 0 then -- Check if Scaled radio button is not selected click radio button "Scaled" -- Click the "Scaled" radio button -- and click on the icon above "Larger Text" (which is in fact a radio button) tell application "System Events" tell tab group 1 of window "LG UltraFine" of application process "System Preferences" of application "System Events" tell radio group 1 of group 2 click radio button 1 end tell end tell end tell else -- Scaled radio button is already selected click radio button "Default for display" -- therefore click on "Default for display" end if end tell end tell end tell 

Esto funciona en mi MacBook Pro con la última versión de Sierra. Acabo de sustituir "Pantalla Retina incorporada" con la tuya. Creo que debería funcionar para ti.

 tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays" end tell tell application "System Events" to tell process "System Preferences" to tell window "LG UltraFine" click radio button "Scaled" of radio group 1 of tab group 1 click radio button 1 of radio group 1 of group 1 of tab group 1 delay 0.1 -- adjust this value as needed if you get a message that you need to click "ok". click button "OK" of sheet 1 -- on my MBP, choosing the lowest resolution displays a message that I need to click "ok". Just delete this command if you don't need it end tell quit application "System Preferences" 

Este es el post que se muestra que agregué el command "presionar el button" para

enter image description here

Esto debería restablecer la resolución de la pantalla a sus valores pnetworkingeterminados

 tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays" end tell tell application "System Events" to tell process "System Preferences" to tell window "LG UltraFine" click radio button "Scaled" of radio group 1 of tab group 1 click radio button 3 of radio group 1 of group 1 of tab group 1 end tell quit application "System Preferences" 

Y aquí está la versión de alternar

 tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays" end tell tell application "System Events" to tell process "System Preferences" to tell window "LG UltraFine" click radio button "Display" of tab group 1 click radio button "Scaled" of radio group 1 of tab group 1 tell radio group 1 of group 1 of tab group 1 set getResolution to get value of radio button 1 end tell if getResolution then click radio button 3 of radio group 1 of group 1 of tab group 1 else click radio button 1 of radio group 1 of group 1 of tab group 1 delay 0.1 -- adjust this value as needed if you get a message that you need to click "ok". try click button "OK" of sheet 1 -- on my MBP, choosing the lowest resolution displays a message that I need to click "ok". Just delete this command if you don't need it end try end if end tell quit application "System Preferences" 

También puede "aplicar ingeniería inversa" (por falta de un término mejor) usando Automator y "verme hacer". En Automator, inicie A "Watch me do recording" y cuando termine de grabar, select todos los pasos en la acción grabada y la opción de menu Editar / Copiar. Luego cambie al ScriptEditor y cree un nuevo documento y "Pegue" lo que copió de Automator en el nuevo documento.

enter image description here

enter image description here

Puede comstackr el script y ejecutarlo si lo desea. Sin embargo, lo más importante es que le mostrará los nombres exactos de los elementos de su IU (pestaña 1, área de desplazamiento, etc.) que puede usar para sustituir el código que publiqué anteriormente.

  • No se puede iniciar MacBook Pro después de la degradación de High Sierra a Sierra
  • ¿Dónde puedo ver los loggings de VPN IPSec de Cisco?
  • macOS Sierra identifica mi keyboard externo de Microsoft como el keyboard interno de mi MacBook
  • copyndo instalaciones xcode de una máquina a otra
  • Utilidad de disco congelada cuando se ejecuta en modo de recuperación
  • Error: Se produjo un error al preparar la installation, mientras se reinstalaba Mac OS Sierra
  • launchd acaparando la CPU
  • Problema de MBP Late 2016 Thunderbolt 3: cables conectados no reconocidos después de dormir / despertar
  • Mac se apaga durante el inicio
  • La barra lateral de vista previa de macOS no muestra text para resaltados anteriores
  • Después de la installation de Sierra, ya no puedo desplazarme usando el panel táctil. Debo usar la flecha hacia abajo
  • Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).