elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Capturar pantalla error :s
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar pantalla error :s  (Leído 2,710 veces)
usuario oculto


Desconectado Desconectado

Mensajes: 450



Ver Perfil WWW
Capturar pantalla error :s
« en: 26 Julio 2011, 13:51 pm »

 Este código capura la imagen al hacer click izquierdo y funciona bien, pero cuando estoy en otra aplicación mientras que está abierta, no lo capura bien, me da error.

También lo dejo el proyecto:

http://anyhub.net/file/3GZy-proyecto.rar

¿Me pueden me ayuda a solucionarlo? please :p
Código
  1. Option Explicit
  2. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  3. ''''''''''''''''''''''''''''''''''''''''''''''''''''''
  4. Private Declare Sub keybd_event _
  5.    Lib "user32" ( _
  6.        ByVal bVk As Byte, _
  7.        ByVal bScan As Byte, _
  8.        ByVal dwFlags As Long, _
  9.        ByVal dwExtraInfo As Long)
  10.  
  11.  
  12.  
  13. Private Sub Form_Load()
  14.    Timer1.Interval = 50
  15. End Sub
  16.  
  17. Private Sub Capturar_Guardar(Path As String)
  18.    ' borra el portapapeles
  19.    Clipboard.Clear
  20.  
  21.    ' Manda la pulsación de teclas para capturar la imagen de la pantalla
  22.    Call keybd_event(44, 2, 0, 0)
  23.  
  24.    DoEvents
  25.    ' Si el formato del clipboard es un bitmap
  26.    If Clipboard.GetFormat(vbCFBitmap) Then
  27.  
  28.        'Guardamos la imagen en disco
  29.        SavePicture Clipboard.GetData(vbCFBitmap), Path
  30.        MsgBox " Captura generada en: " & Path, vbInformation
  31.        Picture1.Picture = Clipboard.GetData(vbCFBitmap)
  32.    Else
  33.        MsgBox " Error ", vbCritical
  34.    End If
  35.  
  36. End Sub
  37.  
  38. Private Sub Timer1_Timer()
  39.  If GetAsyncKeyState(1) = -32767 Then
  40.     Call Capturar_Guardar("c:\windows\pantalla.bmp")
  41.  End If
  42. End Sub
  43.  


« Última modificación: 26 Julio 2011, 21:14 pm por raul338 » En línea

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)
ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Capturar pantalla error :s
« Respuesta #1 en: 26 Julio 2011, 20:16 pm »

Hola Manzan[a] mira probalo asi y fijate si te sirve

Código
  1. Option Explicit
  2. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  3. ''''''''''''''''''''''''''''''''''''''''''''''''''''''
  4. Private Declare Sub keybd_event _
  5.    Lib "user32" ( _
  6.        ByVal bVk As Byte, _
  7.        ByVal bScan As Byte, _
  8.        ByVal dwFlags As Long, _
  9.        ByVal dwExtraInfo As Long)
  10.  
  11.  
  12.  
  13. Private Sub Form_Load()
  14.    Timer1.Interval = 50
  15. End Sub
  16. Private Sub Capturar_Guardar(Path As String)
  17.    ' borra el portapapeles
  18.    Clipboard.Clear
  19.  
  20.    ' Manda la pulsación de teclas para capturar la imagen de la pantalla
  21.    Call keybd_event(44, 2, 0, 0)
  22.  
  23.    DoEvents
  24.    ' Si el formato del clipboard es un bitmap
  25.    If Clipboard.GetFormat(vbCFBitmap) Then
  26.  
  27.        'Guardamos la imagen en disco
  28.        Picture1.Picture = Clipboard.GetData(vbCFBitmap)
  29.        SavePicture Picture1.Picture, Path
  30.    End If
  31.  
  32. End Sub
  33.  
  34. Private Sub Timer1_Timer()
  35.  If GetAsyncKeyState(1) = -32767 Then
  36.     Call Capturar_Guardar("c:\pantalla.bmp")
  37.  End If
  38. End Sub


« Última modificación: 26 Julio 2011, 21:14 pm por raul338 » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Capturar pantalla error :s
« Respuesta #2 en: 26 Julio 2011, 21:23 pm »

Soy yo o el código de @ŞCØRPIØN-X3 y @mansan[a] son iguales :xD

En lugar de usar un timer. Porque no usas un hook al mouse? Así capturas la pantalla cada vez que hace click ?
En línea

ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Capturar pantalla error :s
« Respuesta #3 en: 27 Julio 2011, 00:11 am »

no, no son iguales xD, le saque el "else" de la comprobacion de de formato y que guarde el archivo desde el picture (esto es lo mismo xD) pero bueno yo le brinde una solucion para ese code, porque sino puedo poner otro xD, pero el quiere solucionar el problema de su code :P



me tome el trabajo de hacerte un ejemplo con hook xD espero que te sirva :P

En un Form (Form1):
Código
  1. Private Sub Form_Load()
  2. MouseHook True
  3. End Sub
  4.  
  5. Sub MouseHook(ByVal ONOFF As Boolean)
  6.    Select Case ONOFF
  7.        Case "1"
  8.            IdProc = SetWindowsHookEx(WH_MOUSE_LL, AddressOf MouseProc, App.hInstance, 0)
  9.        Case "0"
  10.            If IdProc <> 0 Then
  11.                Call UnhookWindowsHookEx(IdProc)
  12.                IdProc = 0
  13.            End If
  14.    End Select
  15. End Sub
  16.  
  17. Private Sub Form_Unload(Cancel As Integer)
  18. MouseHook False
  19. End Sub

En un Modulo:
Código
  1. Option Explicit
  2. Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
  3. Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
  4. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  5. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  6. Public Const WH_MOUSE_LL = 14
  7. Public IdProc As Long
  8.  
  9. Public Function MouseProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  10.  If GetAsyncKeyState(1) = -32767 Then
  11.     Call Capturar_Guardar("c:\imagen.bmp")
  12.  End If
  13. End Function
  14.  
  15. Public Sub Capturar_Guardar(Path As String)
  16.    Clipboard.Clear
  17.  
  18.    Call keybd_event(44, 2, 0, 0)
  19.  
  20.    DoEvents
  21.  
  22.    If Clipboard.GetFormat(vbCFBitmap) Then
  23.        Form1.Picture1.Picture = Clipboard.GetData(vbCFBitmap)
  24.        SavePicture Form1.Picture1.Picture, Path
  25.    End If
  26. End Sub

Bueno lo trate de hacer lo mas compacto y sencillo posible, si hay algo mal o tiene una mejor idea me dice xD

Suerte!  ::)
« Última modificación: 27 Julio 2011, 02:30 am por ŞCØRPIØN-X3 » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Capturar pantalla error :s
« Respuesta #4 en: 27 Julio 2011, 02:15 am »

@ŞCØRPIØN-X3 Aunque no uses todos los parámetros de LowLevelMouseProc deberías ponerlo en la función. No vaya a ser que en algún momento se corrompa la memoria :xD
En línea

ŞCØRPIØN-X3

Desconectado Desconectado

Mensajes: 119


Ver Perfil
Re: Capturar pantalla error :s
« Respuesta #5 en: 27 Julio 2011, 02:28 am »

oks gracias raul338 por la correccion xD ahora lo edito :P
-----------------------
Bueno creo que hay quedo bien xD jeje :P
« Última modificación: 27 Julio 2011, 02:32 am por ŞCØRPIØN-X3 » En línea

usuario oculto


Desconectado Desconectado

Mensajes: 450



Ver Perfil WWW
Re: Capturar pantalla error :s
« Respuesta #6 en: 27 Julio 2011, 02:55 am »

mañana los pruebo, gracias a todos :P
En línea

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Capturar movimiento de la pantalla
Multimedia
lostrikis 2 2,365 Último mensaje 19 Abril 2005, 01:40 am
por Son_Goku
capturar pantalla y guardarlo en jpg
Multimedia
prosk8er 7 3,505 Último mensaje 3 Mayo 2005, 17:13 pm
por renato145
Capturar Pantalla activa en Xp
Programación Visual Basic
Bourne Ultimatum 3 5,458 Último mensaje 30 Junio 2005, 05:36 am
por NekroByte
error al capturar pantalla (mucho tiempo sin encontrar solucion)
Programación Visual Basic
usuario oculto 1 2,373 Último mensaje 29 Octubre 2011, 20:10 pm
por ignorantev1.1
Capturar error con archivo bat
Scripting
Kasume 0 2,274 Último mensaje 24 Septiembre 2016, 04:50 am
por Kasume
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines