Título: error al capturar pantalla (mucho tiempo sin encontrar solucion)
Publicado por: usuario oculto en 29 Octubre 2011, 15:26 pm
Aqui esta el source Option Explicit 'Api para generar un evento de tecla, en este caso Print Screen '''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Declare Sub keybd_event _ Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) 'recibe la ruta donde crear el BMP '''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub Capturar_Guardar(Path As String) ' borra el portapapeles Clipboard.Clear ' Manda la pulsación de teclas para capturar la imagen de la pantalla Call keybd_event(44, 2, 0, 0) DoEvents ' Si el formato del clipboard es un bitmap If Clipboard.GetFormat(vbCFBitmap) Then 'Guardamos la imagen en disco SavePicture Clipboard.GetData(vbCFBitmap), Path MsgBox " Captura generada en: " & Path, vbInformation Picture1.Picture = Clipboard.GetData(vbCFBitmap) Else MsgBox " Error ", vbCritical End If End Sub Private Sub Form_Load() Command1.Caption = " Capturar pantalla " End Sub
Private Sub Timer1_Timer() Call Capturar_Guardar("c:\pantalla.bmp") End Sub
He puesto capturar pantalla cada 5 seg, el problema esque tengo que tener el programa como principal , osea si por ejemplo lo ejecuto, lo dejo abierto y empiezo abrir otro programa como principal da error. ejemplo: abro el exe abro el navegador antes de los 5 seg, me da error porque el exe tiene que estar como ventana principal
Título: Re: error al capturar pantalla (mucho tiempo sin encontrar solucion)
Publicado por: ignorantev1.1 en 29 Octubre 2011, 20:10 pm
Option Explicit 'Api para generar un evento de tecla, en este caso Print Screen '''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Declare Sub keybd_event _ Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) 'recibe la ruta donde crear el BMP '''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub Capturar_Guardar(Path As String) ' borra el portapapeles Clipboard.Clear ' Manda la pulsación de teclas para capturar la imagen de la pantalla Call keybd_event(44, 2, 0, 0) Do While Clipboard.GetData = False 'Esperas hasta que termine de cargar los datos DoEvents Loop ' Si el formato del clipboard es un bitmap If Clipboard.GetFormat(vbCFBitmap) Then 'Guardamos la imagen en disco Picture1.Picture = Clipboard.GetData(vbCFBitmap) 'Primero a un Picture... Clipboard.Clear 'Limpiar SavePicture Picture1.Picture, Path '...y luego guardas MsgBox " Captura generada en: " & Path, vbInformation Else MsgBox " Error ", vbCritical End If End Sub Private Sub Form_Load() Command1.Caption = " Capturar pantalla " End Sub Private Sub Timer1_Timer() Call Capturar_Guardar("c:\pantalla.bmp") End Sub
Espero y te sirva, saludos!
|