error al capturar pantalla (mucho tiempo sin encontrar solucion)

Iniciado por usuario oculto, 29 Octubre 2011, 15:26 PM

0 Miembros y 1 Visitante están viendo este tema.

usuario oculto

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

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

ignorantev1.1

Código (vb) [Seleccionar]

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!