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?
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.
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 .
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.
delay
comando 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.
delay
comando 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 delay
comando 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 delay
comando .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
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
0.25
segundo valor, delay 0.25
en el primer delay
comando, este breve retraso es necesario ya que debe haber un retraso entre los dos keystroke
comandos. Si usa la solución de un solo clic del mouse, el segundo delay
comando 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.5
etc.Abra el Editor de scripts (o el Editor de AppleScript, si corresponde).
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 .
Presione ⌘Spara guardar y configure el Formato de archivo: a Aplicación guardándolo en la carpeta Aplicaciones .
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)
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.
Screen Shot yyyy-mm-dd at hh.mm.ss AM|PM
o, 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
Descargue CLICLICK y monte el archivo clickclick.dmg y coloque una copia del cliclick
ejecutable 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 cliclick
ejecutable allí.
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.
Guarde los cambios realizados en el AppleScript .
Ahora está listo para usarse como una solución de un solo clic del mouse .
Abra Automator seleccionando Servicio .
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.
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 delay
comando en 0.25
.
Guarde el Servicio presionando ⌘Snombrándolo como Window-Snapshot .
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
cliclick
ejecutable 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.
Un enfoque sería usar el screencapture
comando:
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?
Pablo
usuario3439894
checkModifierKeys
y 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 tecladisable-shadow
en 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.