Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: usuario oculto en 29 Octubre 2011, 15:26 PM

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
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!