error de osascript: el cuadro de diálogo "elegir de la lista" inicial de AppleScript no está seleccionado

Ejecuto el siguiente código en la Terminal:

osascript "/Users/Me/Desktop/Run this script on wake.scpt"

Si el primer cuadro de diálogo de mi archivo .scpt es un choose from listcuadro de diálogo, este cuadro de diálogo no estará seleccionado. Es decir, no puedo simplemente presionar la entertecla para presionar "OK"; Primero debo hacer clic en cualquier parte del cuadro de diálogo para que la barra superior del cuadro de diálogo cambie de blanco a gris, y solo entonces puedo presionar enterpara continuar.

Para ser claros, el cuadro de diálogo aparece al frente muy bien, simplemente no está seleccionado.

Sin embargo, si el primer diálogo es un diálogo display dialogo display alert, entonces el diálogo se selecciona automáticamente. Da la casualidad de que el diálogo inicial de mi archivo .scpt es un choose from listdiálogo.

Traté de escribir activate meen la línea sobre el choose from listcuadro de diálogo, pero esto no hizo nada.

Cuando ejecuto "Ejecutar este script en wake.scpt" desde el Editor de scripts, el choose from listcuadro de diálogo está de hecho seleccionado. Por lo tanto, sabemos que el problema está relacionado con osascript.

¿Alguien tiene una solución para forzar que el choose from listcuadro de diálogo se seleccione automáticamente?

Intenté implementar una selección predeterminada insertando el default itemsparámetro en el choose from listcomando (aunque en realidad no quiero que exista un elemento predeterminado en este caso). Pensé que hacer esto podría forzar la selección del cuadro de diálogo. Pero, aún así, el cuadro de diálogo de la lista no está seleccionado.

Como último recurso, supongo que podría usar AppleScript para hacer clic con el mouse en el centro de la pantalla (donde se encuentra el cuadro de diálogo). Pero preferiría una solución más elegante, ya que AppleScript puede no ser confiable cuando se trata de hacer clic con el mouse.


Si se pregunta por qué estoy empleando osascripten primer lugar, es porque estoy usando SleepWatcher para ejecutar automáticamente un AppleScript cuando mi computadora se despierta del modo de suspensión. ( Aquí hay una guía muy útil que usé para configurar SleepWatcher).

Este es el texto completo de mi archivo .wakeup:

#!/bin/bash
osascript "/Users/Me/Desktop/Run this script on wake.scpt"
Como escribí en mi respuesta a continuación (desapercibido por el OP), su (su) problema no es AppleScript , sino el hecho de que osascript no es un mero comando sino un proceso propio. Por lo tanto tú (él) activate application "Terminal" NO debes "yo" (= osascript)…

Respuestas (2)

Esto es raro... Por ahora, te recomiendo que guardes tu script como ejecutable. Esto se puede hacer abriendo su Applescript en el Editor de secuencias de comandos, luego haciendo clic en el menú Archivo, luego Exportar, luego eligiendo "Aplicación" en el cuadro desplegable Formato de archivo. A continuación, podría crear un Applescript que ejecute esta aplicación.

Desafortunadamente, esta solución no resuelve el problema. Guardé mi AppleScript como un archivo .app a través de Automator. Luego intenté iniciar la .app a través de la Terminal utilizando los dos métodos diferentes que se explican aquí . También intenté simplemente hacer doble clic en la aplicación y ejecutarla desde Finder de la manera estándar. También intenté iniciar la aplicación con AppleScript en un archivo .scpt separado, como sugirió. En todos estos casos, el choose from listcuadro de diálogo inicial no está seleccionado. Pero ahora sabemos que el error es más amplio que osascript.
Por favor ignore mi comentario anterior. Descubrí que, siempre que incluya activate meen la línea anterior choose from list, al ejecutar la versión .app del archivo AppleScript, el cuadro de diálogo de la lista inicial se selecciona necesariamente, sin importar cómo se ejecute el archivo .app. ¡Gracias!
¡Ningún problema! ¡Me alegro de que usar .app haya funcionado!

Como ya descubrí en el contexto de una pregunta diferente, su problema es el "yo" en su secuencia de comandos y, por lo tanto, no solo está "relacionado" con osascript:

osascript ES TU problema…

… ya que osascript NO es un mero comando en la Terminal, sino un proceso en sí mismo .
Si desea abrir un archivo desde la Terminal, debe "activar la Terminal" y NO "activarme" [= osascript].

(Dado que ya aceptó una respuesta como "elegida", limitaré mi respuesta a esta pista).