Script para obtener ventanas desde más allá del borde de visualización

6

Tengo un problema con mi nuevo monitor. A menudo, cuando desbloqueo la pantalla, hay ventanas que cuelgan más allá del borde del escritorio. Es bastante irritante tener que arrastrarlos al centro de la ventana manualmente.

Afortunadamente, he encontrado un script que puede hacerlo por mí: enlace

Lamentablemente, solo funciona desde la ventana del editor de secuencias de comandos. Cuando trato de ejecutarlo haciendo clic en su nombre en la barra de menú del script, no hace nada. Intenté guardarlo como una aplicación y ejecutarlo, para el mismo efecto.

¿Alguien puede ayudarme con eso?

    
pregunta autoencoder 24.04.2017 - 13:45

2 respuestas

5

Fui a la URL en tu pregunta, haz clic en el botón Sin procesar , copié el código y lo pegué en Editor de secuencias de comandos , donde lo guardé como una aplicación llamada: Reunir Windows.app fuera de pantalla

Luego entré en Preferencias del sistema > Seguridad & Privacidad > Accesibilidad , como se muestra en la imagen a continuación, y agregó Recoger Windows.app fuera de pantalla .

Moví algunas ventanas fuera de la pantalla, luego ejecuté Reunir Windows.app fuera de pantalla , se completó sin errores y movió las ventanas fuera de pantalla por completo a la pantalla.

Ahora,mientrasagreguéGatherOff-ScreenWindows.appaPreferenciasdelsistema>Seguridad&Privacidad>Accesibilidaddespuésdehaberloguardado,sinolohubierahecho,habríaesperadoverlossiguientescuadrosdediálogocuandoejecutélaaplicación(queavecesunooambosnopuedenaparecer):

Dicho esto, permítanme decir que, si bien no he estudiado en profundidad el script para entenderlo de forma mecánica, no obstante, veo lo que considero una codificación deficiente en este caso en el comenzando y cambiaría la siguiente línea de código desde:

repeat with proc in application processes

Para:

repeat with proc in (application processes whose visible is equal to true)

La razón por la que este cambio tiene sentido para mí es, por ejemplo, en este momento tengo 38 procesos de aplicación en ejecución, de los cuales solo 10 son visibles y, por lo tanto, no tiene sentido consultar los 28 procesos de aplicación que ni siquiera son visibles .

También tenga en cuenta que incluso minimicé algunas de las ventanas fuera de la pantalla antes de ejecutar la aplicación y cuando las minimicé, estaban completamente en pantalla. Por lo tanto, la propiedad visible en esta instancia se refiere al proceso que no minimiza las ventanas fuera de pantalla que, si bien están minimizadas, no están visibles.

    
respondido por el user3439894 24.04.2017 - 15:19
3

Usaría Automator para crear un servicio que ejecute el Apple Script. Y, como beneficio adicional, también puede usar Preferencias del sistema para asignar un método abreviado de teclado al servicio.

Debajo están los pasos involucrados para cada uno.

1. Crea un servicio utilizando Automator

  1. Inicie Automator (que generalmente se encuentra dentro de su carpeta de Aplicaciones)
  2. Ir a Archivo > Nuevo
  3. Selecciona el servicio y haz clic en Elegir
  4. En la parte superior derecha de la ventana que aparece, asegúrese de seleccionar "Sin entrada" en la lista desplegable El servicio recibe
  5. Asegúrese de que la lista desplegable En muestre "Cualquier aplicación"
  6. En la segunda columna que contiene la lista larga, busque "Ejecutar AppleScript" y haga doble clic en ella
  7. Esto agregará la ventana Ejecutar AppleScript a la derecha
  8. Ahora, reemplaza el (* Tu script va aquí *) con el script que deseas
  9. Guarde el servicio con un nombre significativo (por ejemplo, Reúna las ventanas).
  10. Salir de Automator

Ahora probaría el servicio moviendo un par de ventanas de la pantalla. Puede ejecutar el servicio desde cualquier aplicación yendo a la lista de Servicios dentro de cualquier menú de Aplicación (por ejemplo, Finder > Servicios, Safari > Servicios, TextEdit > Servicios, etc.) y seleccione el servicio que acaba de creado.

Suponiendo que funcione, también puedes crear un método abreviado de teclado para ejecutarlo.

2. Creando tu acceso directo

  1. Ir a Preferencias del sistema > Teclado > Atajos
  2. Seleccione Servicios desde la barra lateral
  3. Encuentre su servicio (estará en la lista del lado derecho)
  4. Agregue un acceso directo haciendo doble clic en el nombre del servicio
  5. Ahora ve a Preferencias del sistema > Seguridad y amp; Privacidad > Privacidad
  6. Seleccione Accesibilidad en la barra lateral
  7. Haga clic en el signo + (es posible que deba desbloquear el candado si está bloqueado)
  8. Agregar Automator.
  9. Agregar buscador (para encontrar esto, tendrá que navegar hasta /System/Library/CoreServices/Finder.app ).
  10. Salga de sus Preferencias del Sistema.

Ahora debería poder utilizar el método abreviado de teclado para ejecutar el servicio.

NOTA: soy consciente de que para algunos los atajos de teclado de los usuarios no parecen funcionar aunque se hayan asignado a un servicio. Este es otro tema, pero si esto sucede en su caso, al menos puede ejecutar el servicio desde cualquier aplicación que esté usando.

Déjame saber cómo te va.

    
respondido por el Monomeeth 24.04.2017 - 15:25

Lea otras preguntas en las etiquetas