Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando
-- Tutorial de iniciación a Autoit --
Volver al índice del tutorial
____________________________
46.- Capturar pantalla.
- Se creará una carpeta llamada "mis_capturas" en Biblioteca / Documentos del ordenador.
- Se realizarán 5 capturas automáticas de la pantalla actual y se guardarán en esa carpeta, el nombre de la imagen será la hora actual.
- El bucle For ... to ... Next realiza el código 5 veces.
- Cada vez que se capture una pantalla se mostrará su imagen.
- Beep (frecuencia, tiempo)
- Mediante HotKeySet cada vez que pulsemos la tecla {F2}, se realizará una captura de pantalla y se guardará en la carpeta "mis_capturas"
- Mediante la Tecla {Escape}, saldremos de la aplicación.
- Mientras la aplicación esté activa, saldrá un pequeño avisor ToolTip, en el vértice superior izquierdo de la pantalla.
- Las funciones de _ScreenCapture la encontramos en:
- En vez de capturar la pantalla completa, puede capturar una zona de la pantalla o una ventana identificada.
_____________________________________________________________________
- Código de captura de pantalla.
Capturar pantalla. |
#include <ScreenCapture.au3>
; Juan A. Villalpando - KIO4.COM
HotKeySet("{F2}", "Realizar_captura") ; Pulsar F2
HotKeySet("{ESC}", "Salir") ; Pulsar Escape
If Not FileExists(@MyDocumentsDir & "\mis_capturas") Then
MsgBox(0,"Creación de la carpeta","La carpeta mis_capturas no existe, la voy a crear.", 3) ; El mensaje está 3 segundos.
DirCreate(@MyDocumentsDir & "\mis_capturas")
EndIf
; Realiza 5 capturas.
For $n = 1 to 5
Realizar_captura() ; Llama a la función de Relizar_captura.
; Espera 10 segundos para la siguiente captura.
Sleep(10000)
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Realizar_captura()
$fecha = @MDAY & "-" & @MON & "-" & @HOUR & "-" & @MIN & "-" & @SEC
; Captura la pantalla completa.
$captura_pantalla = _ScreenCapture_Capture("")
Beep(900,200)
; Guarda la imagen capturada en la carpeta de Documentos/mis_capturas, el nombre será la fecha-hora de hoy.
_ScreenCapture_SaveImage(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg", $captura_pantalla)
; Muestra la imagen capturada.
ShellExecute(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg")
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Salir()
Exit 0
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While 1 ; Bucle para que la aplicación siga activa hasta que pulsemos Esc.
Sleep(100)
ToolTip("F2: Capturar. Esc: Salir", 10, 10) ; Mira el aviso en la esquina superior izquierda de la pantalla.
WEnd
|
_____________________________________________________________________
- Captura de la ventana activa.
Capturar pantalla completa y ventana activa. |
#include <ScreenCapture.au3>
; Juan A. Villalpando - KIO4.COM
HotKeySet("{F2}", "Realizar_captura") ; Pulsar F2
HotKeySet("{ESC}", "Salir") ; Pulsar Escape
HotKeySet("{F3}", "Ventana_activa") ; Pulsar F3
If Not FileExists(@MyDocumentsDir & "\mis_capturas") Then
MsgBox(0,"Creación de la carpeta","La carpeta mis_capturas no existe, la voy a crear.", 3) ; El mensaje está 3 segundos.
DirCreate(@MyDocumentsDir & "\mis_capturas")
EndIf
; Realiza 5 capturas.
For $n = 1 to 5
Realizar_captura() ; Llama a la función de Relizar_captura.
; Espera 10 segundos para la siguiente captura.
Sleep(10000)
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Realizar_captura()
$fecha = @MDAY & "-" & @MON & "-" & @HOUR & "-" & @MIN & "-" & @SEC
; Captura la pantalla completa.
$captura_pantalla = _ScreenCapture_Capture("")
Beep(900,200)
; Guarda la imagen capturada en la carpeta de Documentos/mis_capturas, el nombre será la fecha-hora de hoy.
_ScreenCapture_SaveImage(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg", $captura_pantalla)
; Muestra la imagen capturada.
ShellExecute(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg")
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Salir()
Exit 0
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Ventana_activa()
$fecha = @MDAY & "-" & @MON & "-" & @HOUR & "-" & @MIN & "-" & @SEC
$hwnd = WinGetHandle("[ACTIVE]") ; Identificador de la ventana activa.
; Captura la ventana activa y guardar.
_ScreenCapture_CaptureWnd(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg", $hwnd)
Beep(900,200)
; Muestra la imagen capturada.
ShellExecute(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg")
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While 1 ; Bucle para que la aplicación siga activa hasta que pulsemos Esc.
Sleep(100)
ToolTip("F2: Capturar. F3: Ventana. Esc: Salir", 10, 10) ; Mira el aviso en la esquina superior izquierda de la pantalla.
WEnd
|
__________________________________________
- Comentarios.
- En el código de ventana activa fíjate que la dirección donde se guardará la imagen está dentro de la función.
- Además no hace falta utilizar una variable para guardar:
_ScreenCapture_CaptureWnd(@MyDocumentsDir & "\mis_capturas\" & $fecha & ".jpg", $hwnd)
- Para obtener el identificador de la ventana activa utilizamos:
$hwnd = WinGetHandle("[ACTIVE]") ; Identificador de la ventana activa.
- Para probar la captura de la ventana activa, saca la "Calculadora", la pones en primer plano y pulsa la tecla {F3}, se capturará solamente la ventana de la Calculadora.
__________________________________________
- Propuestas.
-_____
|