Ir al contenido

Take Screenshot

Tipo: take-screenshot  ·  Paquete: Desktop Activities v1.0.8  ·  Salida: string

Desde: v1.0.3

Captura el escritorio completo —todos los monitores o solo el principal— en un archivo de imagen y devuelve su ruta. Sirve para ver qué había en pantalla cuando ocurrió un error de sistema: un diálogo inesperado, una aplicación colgada, un mensaje que el robot no esperaba.

Es una actividad explícita: solo captura donde tú la pones, normalmente en el catch de un Try / Catch o en el playbook de recuperación. El motor nunca toma capturas por su cuenta al fallar, porque la pantalla puede mostrar información sensible; tú decides en qué pasos vale la pena guardarla y dónde.

  • screen = all (por defecto) captura el área de todos los monitores; primary, solo el monitor principal.
  • Si path termina en .jpg o .jpeg guarda JPEG; con cualquier otra extensión, PNG.
  • Si path está vacío, crea un archivo nuevo en la carpeta temporal del usuario del robot: %TEMP%\zoan-screenshots\screenshot-AAAAMMDD-HHmmss-fff.png.
  • Crea la carpeta de destino si no existe y sobrescribe el archivo si ya existe.
  • A diferencia de Win Screenshot, no necesita sesión ni selector: captura lo que se ve, sea la aplicación que sea.

Necesita un escritorio interactivo (el de la persona en ejecuciones atendidas, o el de la sesión de robot en desatendidas). En la Session 0 de los servicios de Windows no hay nada que capturar.

Ninguno.

ParámetroTipoPor defectoDescripción
pathstring—Archivo de imagen (.png o .jpg). Vacío = un .png nuevo en la carpeta temporal (zoan-screenshots).
screenstringallQué capturar: all (todos los monitores) · primary (solo el monitor principal).

Devuelve un string con la ruta completa del archivo guardado, lista para adjuntarla a una tarea de revisión, enviarla por correo o registrarla junto con el error.

MensajeCausa y solución
No hay escritorio que capturar (el robot no se está ejecutando en una sesión interactiva).El robot corre sin escritorio (Session 0). Ejecútalo con una sesión de robot.
No se pudo capturar el escritorio: …. El robot necesita una sesión interactiva.Windows no dejó leer la pantalla (sesión bloqueada o sin escritorio). Igual que el anterior.

Como suele usarse dentro de un catch, conviene que un fallo de la captura no tape el error original: si la máquina puede quedar sin escritorio, ponla en su propio Try / Catch.

Guardar la pantalla con un nombre único cuando falla un paso, y dejar la ruta en el registro:

Try / Catch errorVariable = error
├─ try:
│ Win Click selector = (botón "Procesar")
│ Win Wait For selector = (etiqueta "Listo") state = visible
└─ catch:
Take Screenshot path = pathJoin(str(Config["CarpetaCapturas"]), "error_" + now().ToString("yyyyMMdd_HHmmss") + ".png") → output: captura
Log level = error message = "Fallo al procesar: " + error.Message + ". Captura: " + captura

Solo el monitor principal, en la carpeta temporal:

Take Screenshot screen = primary → output: captura