Tome una captura de pantalla de la ventana en Mac sin usar la barra espaciadora y luego haga clic con el mouse

Quiero tomar una captura de pantalla de una ventana en una Mac.

Actualmente estoy usando shift++ cmdy 4luego spacehaga clic con el mouse.

El proceso es muy complicado, tienes que hacerlo en ese orden o tendrás que repetirlo de nuevo.

Quiero un atajo de teclado simple para hacer lo que shift++ .cmd3

Quiero usar un atajo tan simple para tomar una captura de pantalla de una ventana.

¿Es posible?

Respuestas (3)

Aquí está mi solución, a la que denominé Window-Snapshot , basada en un AppleScript muy simple , guardado como una aplicación desde el Editor de scripts o utilizado como parte de un Servicio de Automator con un atajo de teclado asignado. Aunque como servicio , utiliza la utilidad de terceros utilizada en la solución de un solo clic del mouse de la aplicación Window-Snapshot AppleScript que se detalla a continuación.

  • Nota: Automator utilizado como servicio es, en sí mismo, una buena característica, sin embargo, cuando se usa con un método abreviado de teclado global , puede ser problemático a menos que el método abreviado de teclado utilizado sea utilizable y no esté en uso en ningún otro lugar de OS X o cualquier aplicación abierta cuya ventana es ser capturado. Es por eso que he incluido el uso de AppleScript como una aplicación de AppleScript o como un servicio de Automator con atajo de teclado asignado. Mientras que algunos métodos abreviados de teclado asignados a un servicio de Automatorfuncionará con la mayoría de las ventanas de aplicaciones; sin embargo, es posible que no funcione con algunas, incluso si ese método abreviado de teclado no está asignado a esa aplicación de la ventana que se está capturando. En tales casos, se puede usar la aplicación Window-Snapshot AppleScript sobre el Automator Service .

Como una aplicación AppleScript

Esto se puede configurar para que sea una solución de dos clics del mouse ( predeterminada ) o una solución de un solo clic del mouse .

  • * Nota: como solución de un solo clic del mouse , requiere el uso de una utilidad de terceros llamada CLICLICK . Hasta donde yo sé, no hay un evento directo del mouse/izquierda del mouse hacia abajo en AppleScript y, por lo tanto, el uso de una utilidad de terceros o el uso de código adicional, entonces lo que ya se está presentando para emplear métodos que usan otros recursos, nativos y o de terceros.

Como una solución de dos clics del mouse, AppleScript se guarda como una aplicación, lo guardé como Window-Snapshot en Aplicaciones y luego lo coloqué en el Dock arrastrando y soltando el paquete de aplicaciones en el Dock donde quería que estuviera.

  • Lo que me gusta de la solución de dos clics del mouse es cuando se hace clic en el Dock Tile de la aplicación Window-Snapshot , es literalmente como si hubiera presionado manualmente shift, luego en el teclado y ahora todo lo que tengo que hacer es pasar el mouse sobre el objetivo ventana que quiero capturar y luego haga clic con el mouse en ella. Por lo tanto, ¡una solución de dos clics de ratón ! Este método permite presionar la tecla para abortar, tal como lo haría el atajo de teclado presionado manualmente. Además, no depende del uso de una utilidad de terceros y una segundacommand4Space barescdelaycomando como un temporizador para permitir posicionar el puntero del mouse antes de que se agote el tiempo de espera y automáticamente toma la instantánea utilizada en la solución de un solo clic del mouse . Por sí misma, la solución de dos clics del mouse es la solución más fácil que se presenta aquí.

Como una solución de un solo clic del mouse, el AppleScript se guarda como una aplicación y la utilidad de terceros CLICLICK se agrega al paquete de la aplicación y el código correspondiente no se comenta en el script.

  • Nota: La solución de un* clic del mouse utiliza un segundo delaycomando para dar tiempo a colocar el puntero del mouse en cualquier lugar sobre la ventana de destino que se va a capturar y no importa si la ventana es o no la ventana superior, cuando el segundo delaycomando se agota el tiempo de espera en cualquier ventana sobre la que se encuentre el mouse, esa es la capturada en la instantánea. La captura se puede cancelar presionando la tecla antes de que se agoteesc el segundo delaycomando .

Como servicio de Automator con atajo de teclado

Como servicio de Automator, se crea utilizando el código ApplesScript , se modifica ligeramente y se asigna un atajo de teclado al servicio en: Preferencias del sistema> Atajos de teclado> Servicios

  • Nota: El atajo de teclado que asigné es shift- command- 5o ⇧⌘5, que parecía lógico de usar, y cualquier ventana sobre la que se coloque el mouse es la ventana que será capturada por la instantánea. La ventana no necesita ser totalmente visible para ser capturada o ser la ventana superior.

Código AppleScript de instantánea de ventana

tell application "System Events"

    (* Note: If used as the default two mouse-click solution then use as is, nothing else needs to be done. *)

    keystroke "$" using {command down}
    delay 0.25
    keystroke space

    (* Note: If using as the one mouse-click solution or Automator Service, uncomment the 
    two lines below having double-dashes in front by removing the double-dashes. 
    Also when using as the one mouse-click solution, set a value on the 'delay' command 
    below to an appropriate value which allows you the time necessary to move the mouse  
    over the target window before that delay command times out and the snapshot is taken.
    The default of '1.5' is in this use case is a somewhat arbitrary value, set it to suite.

    Note: When using as an Automator Service set the 'delay' command below to '0.25', 
    the same as in the first 'delay' command. *)

    -- delay 1.5
    -- do shell script "/Applications/Window-Snapshot.app/Contents/Resources/cliclick c:."

end tell
  • Nota: Como puede ver, hay un 0.25segundo valor, delay 0.25en el primer delaycomando, este breve retraso es necesario ya que debe haber un retraso entre los dos keystrokecomandos. Si usa la solución de un solo clic del mouse, el segundo delaycomando debe ser algo más realista. Establezca un valor que le permita el tiempo necesario para mover el mouse sobre la ventana de destino antes de que expire el comando de retraso, por ejemplo, 1.5etc.

Creación de la aplicación de instantáneas de ventana

  1. Abra el Editor de scripts (o el Editor de AppleScript, si corresponde).

  2. Copie y pegue el código AppleScript de la instantánea de la ventana , desde arriba, en la ventana del documento sin título y luego presione Compilar .

  3. Presione Spara guardar y configure el Formato de archivo: a Aplicación guardándolo en la carpeta Aplicaciones .

  4. Asigne al paquete de aplicaciones Window-Snapshot un icono personalizado. Usé un ícono de una cámara que se encuentra en Buscar íconos y usé este en particular haciendo clic en el botón 'Descargar ICNS'. Abrí el archivo "scanners_cameras.icns" descargado en Vista previa , lo copié y luego lo pegué en la hoja Obtener información de Window-Snapshot.app seleccionando primero el pequeño icono en la esquina superior izquierda de la hoja de información de Window-Snapshot . (En Aplicaciones seleccione Window-Snapshot.app y presione: I)

  5. Ahora arrastre y suelte el paquete de aplicaciones Window-Snapshot de la carpeta Aplicaciones en el Dock donde le gustaría que estuviera.

Ahora está listo para ser utilizado, haga clic en el mosaico del Dock de instantáneas de ventana y luego haga clic en la ventana de destino para ser capturada.

  • Nota: Las instantáneas se guardan con la misma configuración de nombre y ubicación que si se presionara ⇧⌘3 y solo se guardaran las ventanas de destino. El valor predeterminado está en el uso del escritorio Screen Shot yyyy-mm-dd at hh.mm.ss AM|PMo, si se ha cambiado el valor predeterminado , será como esté configurado actualmente.

Configuración de Window-Snapshot.app para que sea una solución de un solo clic con CLICLICK

  1. Descargue CLICLICK y monte el archivo clickclick.dmg y coloque una copia del cliclickejecutable dentro del paquete de aplicaciones Window-Snapshot.app en la ruta que se muestra en el script. Presione Ctrl y haga clic en la aplicación Window-Snapshot seleccionando Mostrar contenido del paquete y navegue a la carpeta Recursos colocando una copia del cliclickejecutable allí.

  2. Descomente las dos líneas debajo de los (* Note: If using as the one mouse-click solution or Automator Service,comentarios eliminando los guiones dobles, --, delante del código.

  3. Guarde los cambios realizados en el AppleScript .

Ahora está listo para usarse como una solución de un solo clic del mouse .

Creación del servicio de automatización de instantáneas de ventana

  1. Abra Automator seleccionando Servicio .

  2. Establezca las recepciones de servicio seleccionadas en ninguna entrada, dejando en cualquier aplicación tal como está. Agregue Ejecutar AppleScript y luego copie y pegue el Código AppleScript de instantánea de ventana anterior en la ventana Ejecutar AppleScript sobrescribiendo el código predeterminado.

  3. Descomente las dos líneas debajo de los (* Note: If using as the one mouse-click solution or Automator Service,comentarios eliminando los guiones dobles, --, delante del código y establezca el valor del segundo delaycomando en 0.25.

  4. Guarde el Servicio presionando Snombrándolo como Window-Snapshot .

  5. Abra Preferencias del sistema y vaya a Teclado > Métodos abreviados de teclado > Servicios y desplácese hasta la parte inferior, luego, en General , verá Instantánea de ventana y selecciónela. Ahora haga clic en agregar acceso directo y presione shift- command- 5o: ⇧⌘5

Ahora está listo para usarse como un servicio usando el atajo de teclado : ⇧⌘5

  • Nota: si solo desea usarlo como un servicio , deberá ajustar el nombre de la ruta al cliclickejecutable en el lugar donde lo instaló. Puede intentar ponerlo en el paquete de Servicios en, por ejemplo /Users/$USER/Library/Services/Window-Snapshot.workflow/Contents, aunque no lo intenté porque me gusta tenerlo como una aplicación AppleScript que lo usa como una solución de dos clics del mouse y un Servicio de Automator con un atajo de teclado asignado.

Para terminar, me gustaría decir que este AppleScript muy simple sin duda se puede ampliar para agregar funcionalidad adicional tanto como una aplicación o un servicio, es decir, agregar código para guardar la instantánea con diferentes nombres y ubicaciones, etc. deje que usted modifique si así lo desea.

Funciona perfectamente, ⇧⌘5 y ahorra, tu solución ayudará a muchas personas. Gracias.
@Paul, me alegro de que puedas usarlo. Yo uso una versión diferente. de la aplicación AppleScript y no incluye el código aquí, ya que utiliza otro ejecutable de terceros. El segundo ejecutable se llama checkModifierKeysy hace lo que su nombre implica y lo tengo codificado de modo que si presiono la tecla Mayús cuando hago clic en Dock Tile, alterna la tecla disable-shadowen el archivo .plist de la captura de pantalla para que pueda tomar instantáneas sin la sombra paralela fácilmente. . Ambos ejecutables los construí a partir del código fuente que proporcionaron los autores, aunque ambos proporcionan los archivos binarios. Si está interesado, hágamelo saber, actualizaré la respuesta.

Un enfoque sería usar el screencapturecomando:

screencapture -w window.png

que capturará la primera ventana en la que haga clic después de ejecutar el comando y la guardará como window.png.

Hay algunas formas diferentes de vincular este comando a un atajo de teclado, por ejemplo, creando un servicio de Automator que lo ejecute como un script de shell , o usando un iniciador de terceros como Alfred . De cualquier manera, probablemente también desee agregar algo de inteligencia al proceso que elige un nombre de archivo diferente cada vez, para que no siga sobrescribiendo su captura de pantalla anterior.

No conozco una manera fácil de capturar siempre la ventana más frontal... ¿quizás un gurú de AppleScript pueda ayudar con eso?

¿Dónde se guardó window.png? también con ese método usando terminal; Todavía tengo que hacer clic con el mouse, lo hace más fácil y buscaré en Automator y Alfred, gracias.
Con el comando anterior, se guardará en la carpeta desde la que ejecutó el comando. Si quisiera guardar siempre en el escritorio, por ejemplo, podría especificar esa ubicación como parte del nombre del archivo, por ejemplo, 'captura de pantalla -w ~/Escritorio/ventana.png'. Sí, aún se requiere un clic del mouse, aunque ... no pude encontrar una forma de evitarlo hasta ahora.

¿Por qué no habilitar los comandos de dictado mejorados y luego crear un nuevo comando de voz? En el siguiente ejemplo, creé un comando de voz que cuando digo "Tomar foto" tomará una captura de pantalla. Omita completamente el teclado LOL

ingrese la descripción de la imagen aquí