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 list
cuadro 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 dialog
o 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 list
diálogo.
Traté de escribir activate me
en la línea sobre el choose from list
cuadro de diálogo, pero esto no hizo nada.
Cuando ejecuto "Ejecutar este script en wake.scpt" desde el Editor de scripts, el choose from list
cuadro 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 list
cuadro de diálogo se seleccione automáticamente?
Intenté implementar una selección predeterminada insertando el default items
parámetro en el choose from list
comando (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 osascript
en 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"
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.
choose from list
cuadro de diálogo inicial no está seleccionado. Pero ahora sabemos que el error es más amplio que osascript
.activate me
en 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!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).
clemsam lang
activate application "Terminal"
NO debes "yo" (= osascript)…