Te paso una pequeña aplicación que hice para capturar la pantalla en forma más personalizada y rápida.
Código: Seleccionar todo
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\Scripts\Iconos\88-iconos-varios\IMAGE2.ICO
#AutoIt3Wrapper_outfile=cap_nahuel.exe
#AutoIt3Wrapper_Res_Comment=Captura la pantalla
#AutoIt3Wrapper_Res_Description=Captura la pantalla
#AutoIt3Wrapper_Res_LegalCopyright=Nahuel José
#AutoIt3Wrapper_Res_Language=11274
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <ScreenCapture.au3>
#include <Misc.au3>
;Directorio de salida
$DirectorioSalida=@DesktopDir
Opt("GUIOnEventMode",1)
;==VENTANA==========================================================================================
$MainGui = GUICreate("Capturar pantalla", 191, 226,-1,-1, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS))
GUISetOnEvent($GUI_EVENT_CLOSE,"_salir")
$RadioFSC = GUICtrlCreateRadio("Pantalla completa", 28, 28, 113, 17)
GUICtrlSetState(-1,$GUI_CHECKED)
$RadioVA = GUICtrlCreateRadio("Ventana activa", 28, 60, 113, 17)
$RadioAREA = GUICtrlCreateRadio("Area definida por usuario", 28, 92, 153, 17)
$ButtCapturar = GUICtrlCreateButton("&Capturar", 62, 188, 75, 25, $BS_DEFPUSHBUTTON)
GUICtrlSetOnEvent(-1,"_Capturar")
$CheckCursor= GUICtrlCreateCheckbox("Capturar cursor", 28, 144, 97, 17)
GUICtrlSetState(-1,$GUI_CHECKED)
GUICtrlCreateGroup("", 4, 8, 181, 121)
GUISetState(@SW_SHOW)
;===================================================================================================
While 1
Sleep(1000)
WEnd
Func _salir()
Exit
EndFunc
Func _Capturar()
;Esconder la ventana pa no capturarla
GUISetState(@SW_HIDE)
Sleep(500);Dar tiempo al sistema a actualizar la pantalla
Select
Case GUICtrlRead($RadioFSC)=$GUI_CHECKED
;Crear ruta para guardar el archivo.
$i=0
Do
$i+=1
Until Not FileExists($DirectorioSalida & "\Captura_" & $i & ".jpg")
$Cursor=False;no capturar el cursor
If GUICtrlRead($CheckCursor) = $GUI_CHECKED Then $Cursor=True;Capturar el cursor si se lo especificó
;Captuarar la pantalla completa
_ScreenCapture_Capture($DirectorioSalida & "\Captura_" & $i & ".jpg",0,0,-1,-1,$Cursor)
Case GUICtrlRead($RadioAREA)=$GUI_CHECKED
$Area=_ObtenerArea()
;Crear ruta para guardar el archivo.
$i=0
Do
$i+=1
Until Not FileExists($DirectorioSalida & "\Captura_" & $i & ".jpg")
$Cursor=False;no capturar el cursor
If GUICtrlRead($CheckCursor) = $GUI_CHECKED Then $Cursor=True;Capturar el cursor si se lo especificó
_ScreenCapture_Capture($DirectorioSalida & "\Captura_" & $i & ".jpg",$Area[0],$Area[1],$Area[2],$Area[3],$Cursor)
Case GUICtrlRead($RadioVA)=$GUI_CHECKED
$hwndactiva=WinGetHandle("")
$i=0
Do
$i+=1
Until Not FileExists($DirectorioSalida & "\Captura_" & $i & ".jpg")
$Cursor=False;no capturar el cursor
If GUICtrlRead($CheckCursor) = $GUI_CHECKED Then $Cursor=True;Capturar el cursor si se lo especificó
_ScreenCapture_CaptureWnd($DirectorioSalida & "\Captura_" & $i & ".jpg",$hwndactiva,0,0,-1,-1,$Cursor)
EndSelect
GUISetState(@SW_SHOW)
MsgBox(64,"Pantalla capturada","Archivo guardado en: " & @CR & $DirectorioSalida & "\Captura_" & $i & ".jpg",-1,$MainGui)
EndFunc
Func _ObtenerArea()
$user32dll=DllOpen("user32.dll")
$child= GUICreate("area_seleccion",400,400,-1,-1,BitOR($WS_POPUP, $WS_SIZEBOX),$WS_EX_TOPMOST,$MainGui)
GUICtrlCreateLabel("Arrastre y redimensione el rectángulo para seleccionar el área" & @CRLF & "Presione ENTER para capturar",0,0,400,400,$SS_CENTER,$GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1,15)
GUICtrlSetCursor(-1,9)
GUICtrlSetColor(-1,0xffffff)
GUISetBkColor(0x014CBD)
WinSetTrans($child,"",50)
GUISetState()
Do
Sleep(50)
Until _IsPressed("0D",$user32dll)
DllClose($user32dll)
$Area= WinGetPos($child)
$Area[2]=$Area[0]+$Area[2]
$Area[3]=$Area[1]+$Area[3]
GUIDelete()
Return $Area
EndFunc