Capturar pantalla incluyendo video de youtube o reproductores en .jpg u otro

Iniciado por hunter18, 2 Agosto 2010, 01:53 AM

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

hunter18

Quiero capturar la imagen de la pantalla como si presionara la tecla "ImpPant" pero a diferencia de esta me capture la imagen de video ya sea de reproductor de windows, de algun video de youtube o camara web y no me muestre un cuadro negro.

He probado varios ejemplos y links que me han dado pero no he podido hacerlo, haber si alguien puede ayudarme, saludos

seba123neo

Hola, proba esto..

Código (vb) [Seleccionar]
Option Explicit

Private Declare Function PrintWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
Const PW_CLIENTONLY = &H1

Private Sub Timer1_Timer()
    PrintWindow &H40176, Me.hDC, 0
End Sub


lo probe con un video de youtube y anda...ponele el handle del reproductor de youtube para probar o la ventana del navegador.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

hunter18

Perdona la ignorancia pero no se como aplicar el ejemplo :huh:

Como hago para ver la captura que se hizo, podria utilizar un control picture o pegar la captura en paint para ver el resultado?

xkiz ™

Código (vb) [Seleccionar]

Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function PrintWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
Const PW_CLIENTONLY = &H1

Private Sub Timer1_Timer()
Dim Ret As Long

Ret = GetForegroundWindow()

Me.AutoRedraw = True
If (PrintWindow(Ret, Me.hDC, 0) = True) Then
    Me.Refresh
    Debug.Print "Print Realizada"
    Me.SetFocus
Else
    Debug.Print "Error"
End If

Timer1.Enabled = False

End Sub

BlackZeroX


No tiene caso hacer un Timer1.Enabled = False

Código (Vb) [Seleccionar]


Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function PrintWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long

Private Sub Timer1_Timer()
    If PrintWindow(GetForegroundWindow , Me.hDC, 0)  Then
        Me.Refresh
        Debug.Print "Print Realizada"
    Else
        Debug.Print "Error"
    End If
End Sub

The Dark Shadow is my passion.

hunter18

Efectivamente me captura solo la imagen de los videos de youtube, del reproductor windows u otro sale todo negro y de la camara web no lo pude probar.

Parece que no especifique bien lo que intento hacer con su ayuda.
Quiero hacer una captura de toda la pantalla por ejemplo 1024x768 al igual que lo hace la tecla ImpPant la cual no toma los videos y muestra todo negro, algo asi como los keylogger que toman una foto de la pantalla para espiar al usuario.

xkiz ™

en XP si, en WinVista o W7 si se ve el video envez de la pantalla negra esa, = creo que habia un ejemplo de como hacerlo, pero ahora no me acuerdo dondeestaba, lo busco y despues lo posteo si lo encuentro.

LeandroA

Cita de: hunter18 en  4 Agosto 2010, 02:50 AM
Efectivamente me captura solo la imagen de los videos de youtube, del reproductor windows u otro sale todo negro y de la camara web no lo pude probar.

Parece que no especifique bien lo que intento hacer con su ayuda.
Quiero hacer una captura de toda la pantalla por ejemplo 1024x768 al igual que lo hace la tecla ImpPant la cual no toma los videos y muestra todo negro, algo asi como los keylogger que toman una foto de la pantalla para espiar al usuario.

hasta donde yo se no se puede, se que es un color RGB(16, 0, 16) y que el reproductor pinta (no se de que forma) un area determinada de la pantalla que contenga esos colores.

Saludos.

hunter18