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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Web cam caputras y envio para web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Web cam caputras y envio para web  (Leído 3,111 veces)
Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Web cam caputras y envio para web
« en: 16 Septiembre 2010, 23:29 pm »

Hola gente bueno les comento cual es mi idea.
Tengo el siguiente programa en VB con el cual ago la caputra de mi web cam en tiempo real.

FROM

Código
  1.   Option Explicit
  2.   Dim temp As Long
  3.  
  4.   ' botón que inicia la captura
  5.   '''''''''''''''''''''''''''''''''''''''
  6.   Private Sub Command1_Click()
  7.   Dim temp As Long
  8.  
  9.    hwdc = capCreateCaptureWindow("CapWindow", ws_child Or ws_visible, _
  10.                                       0, 0, 320, 240, Picture1.hwnd, 0)
  11.     If (hwdc <> 0) Then
  12.       temp = SendMessage(hwdc, wm_cap_driver_connect, 0, 0)
  13.       temp = SendMessage(hwdc, wm_cap_set_preview, 1, 0)
  14.       temp = SendMessage(hwdc, WM_CAP_SET_PREVIEWRATE, 30, 0)
  15.       temp = SendMessage(hwdc, WM_CAP_SET_SCALE, True, 0)
  16.       'esto hace que la imagen recibida por el dispositivo se ajuste
  17.       'al tamaño de la ventana de captura (justo lo que yo buscaba)
  18.       DoEvents
  19.       startcap = True
  20.       Else
  21.       MsgBox "No hay Camara Web", 48, "Error"
  22.     End If
  23.  
  24.   End Sub
  25.  
  26.   ' botón para detener la captura
  27.   '''''''''''''''''''''''''''''''''''''''
  28.   Private Sub Command2_Click()
  29.  
  30.       temp = DestroyWindow(hwdc)
  31.       If startcap = True Then
  32.           temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&)
  33.           DoEvents
  34.          startcap = False
  35.       End If
  36.  
  37.   End Sub
  38.  
  39.   ' Botón que abre el dialogo de formato
  40.   ''''''''''''''''''''''''''''''''''''''''''''
  41.   Private Sub Command3_Click()
  42.           If startcap = True Then
  43.  
  44.               temp = SendMessage(hwdc, WM_CAP_DLG_VIDEOFORMAT, 0&, 0&)
  45.               DoEvents
  46.           End If
  47.   End Sub
  48.   ' Mostrar dialogo de Configuracion de la WebCam
  49.   ''''''''''''''''''''''''''''''''''''''''''''''''''''
  50.   Private Sub Command4_Click()
  51.    Dim temp As Long
  52.       If startcap = True Then
  53.           temp = SendMessage(hwdc, WM_CAP_DLG_VIDEOCONFIG, 0&, 0&)
  54.           DoEvents
  55.       End If
  56.   End Sub
  57.  
  58.   Private Sub Form_Load()
  59.       Command1.Caption = "Iniciar"
  60.       Command2.Caption = "Detener"
  61.       Command3.Caption = "Formato"
  62.       Command4.Caption = "Configurar"
  63.       Me.Caption = "Capturador de Web Cam"
  64.   End Sub
  65.  
  66.   Private Sub Form_Resize()
  67.       On Error Resume Next
  68.       Move (Screen.Width - Width) \ 29, (Screen.Height - Height) \ 29
  69.   End Sub
  70.  
  71.   Private Sub Form_Unload(Cancel As Integer)
  72.  
  73.       temp = DestroyWindow(hwdc)
  74.       If startcap = True Then
  75.           temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&)
  76.           DoEvents
  77.           startcap = False
  78.       End If
  79.   End Sub

MODULE

Código
  1.    Option Explicit
  2.    ' declaraciones Api, constantes, variables
  3.    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  4.    Public Const ws_child = &H40000000
  5.    Public Const ws_visible = &H10000000
  6.    Public Const WM_USER = 1024
  7.    Public Const wm_cap_driver_connect = WM_USER + 10
  8.    Public Const wm_cap_set_preview = WM_USER + 50
  9.    Public Const WM_CAP_SET_PREVIEWRATE = WM_USER + 52
  10.   Public Const WM_CAP_DRIVER_DISCONNECT = WM_USER + 11
  11.   Public Const WM_CAP_DLG_VIDEOFORMAT = WM_USER + 41
  12.   Public Const WM_CAP_DLG_VIDEOCONFIG = WM_USER + 42
  13.   Public Const WM_CAP_SET_SCALE = WM_USER + 53
  14.  
  15.   'Api para crear la ventana de captura
  16.   Public Declare Function capCreateCaptureWindow Lib "avicap32.dll" _
  17.       Alias "capCreateCaptureWindowA" ( _
  18.       ByVal lpszWindowName As String, _
  19.       ByVal dwStyle As Long, _
  20.       ByVal x As Long, _
  21.       ByVal y As Long, _
  22.       ByVal nWidth As Long, _
  23.       ByVal nHeight As Long, _
  24.       ByVal hwndParent As Long, _
  25.       ByVal nID As Long) As Long
  26.  
  27.   Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
  28.       ByVal hwnd As Long, _
  29.       ByVal wMsg As Long, _
  30.       ByVal wParam As Long, _
  31.       lParam As Any) As Long
  32.  
  33.   Public Declare Function DestroyWindow Lib "user32" (ByVal hndw As Long) As Boolean
  34.   'Solo 16 Bits (vb2, vb3 y vb4  de 16)
  35.   'Declare Function SendMessage Lib "User" ( _
  36.        ByVal hWnd As Integer, _
  37.        ByVal wMsg As Integer, _
  38.        ByVal wParam As Integer, _
  39.        lParam As Any) As Long
  40.   'Api para crear la ventana de captura
  41.   'Declare Function capCreateCaptureWindow Lib "avicap.dll" ( _
  42.        ByVal lpszWindowName As String, _
  43.        ByVal dwStyle As Long, _
  44.        ByVal x As Integer, _
  45.        ByVal y As Integer, _
  46.        ByVal nWidth As Integer, _
  47.        ByVal nHeight As Integer, _
  48.        ByVal hwndParent As Integer, _
  49.        ByVal nID As Integer) As Long
  50.   'Declare Function DestroyWindow Lib "User" (ByVal hndw As Integer) As Integer
  51.   Public hwdc As Long
  52.   Public startcap As Integer
  53.  
 
 
Bueno con esto tengo algo o una idea, pero lo que quiero hacer es poner esto en mi web, osea poder entrar en cualquier maquina y ver que sucede en mi casa o donde apunte mi webcam. Similar a un sistema de vigilancia.

Ahora bueno como ago para mandar esto a un servidor? debere usar socket?
No se si me explico bien, puede ser tambien q este codigo no me sirva, ya que enrealidad lo de tiempo real no sirve, tendria que ser como fotos o capturas de imagenes guardarlas y enviarlas, y hacer un refresh en la web y que vaya actualizadon, creo que es lo mas correcto. pero no se estoy medio en las nueves son nuevo en la prog.

Mas que nada este post esta destinado a que me den sugerencias, e ideas, de por donde encarar el problema.
Desde ya gracias.

Aca dejo lo q seria el codigo en html para la visualizacion de la cam.
Código
  1. <TITLE>Webcam</TITLE>
  2.  
  3. <META HTTP-EQUIV="Refresh" CONTENT="30">
  4. </HEAD>
  5.  
  6. <IMG SRC="ImagesWebCam.gif">
  7. <FONT FACE=Verdana SIZE=6 COLOR=#0011AA><B>Actualizacion cada minuto</B></FONT><BR><BR>
  8. <FONT FACE=Verdana SIZE=2 COLOR=#9911AA><B>viendo nuestra vida en directo.</B></FONT><BR><BR>
  9. <CENTER><IMG SRC="(aqui ira la ruta de la imagen la cual se refrescara cada minuto)">&" BORDER=1></CENTER><BR>
  10. <CENTER><HR WIDTH=75% HEIGHT=2px COLOR=#0011AA></CENTER><BR>
  11.  
  12. </BODY>
  13. </HTML>

Saludos


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Web cam caputras y envio para web
« Respuesta #1 en: 17 Septiembre 2010, 01:55 am »

.
Debes usar Sockets en un puerto X

Saber manejar los Header del protocolo HTTP

Saber como convertir Onthe Fly (preferiblemente)  el hDC a JPG o BMP segun desees y mandar la captura (por hay en mi disco duro tenia un codigo alrato lo busco y te lo pongo es de hDC a BMP, ya despues toca a usar algunas cosillas como GDI++ para convertirla a otro formato, me aprece que LeandroA hizo algo asi!¡.)

En codigo del HTML ponerle un Refresh X Tiempo [   <meta http-equiv="refresh" content="5; url=http://infrangelux.sytes.net/">   ]

Para haci realizar la nueva peticion de la captura X y mandarla por  el protocolo HTTP:

y esto seria "On The Fly" es decir sin Tocar el HD.

Esto que te digo es par ano instalar el APACHE o algun Soft para uns ervidor Web, aun que tambien podrias usar algun servidor web y solo guardar la imagen en alguna carpeta X... pero es mejor el metodo que te menciono arriba (en lo personal).

Dulces Lunas!¡.



« Última modificación: 17 Septiembre 2010, 01:58 am por BlackZeroX » En línea

The Dark Shadow is my passion.
Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Re: Web cam caputras y envio para web
« Respuesta #2 en: 17 Septiembre 2010, 06:21 am »

Gracias BZX por tu respuesta, osea haber si me a quedado claro el metod, lo q decis es q tendria que hacer capturas com mi cam de determidados tiempos ejemplo cada 30 seg y comvertir esta en un archivo JPG, la comvercion a JPG tengo un codigo ya por ahi en algun lugar de mi maquina jeje, tendria q usar sockets? para mandar esto a un servidor, tengo un host creado supongo q puede servir? o no? corregime si me equivoco. pero la la idea esta, es tener algun servicio donde pueda guardar estas capturas, otra cosa tmb seria guardar la nueva captura en la anterior (ir sobreescribiendola). y realizar el refresh correspondiente para ir actualizando.


PD: lo del host no estoy totalmente seguro, y creo estar mandando cualquier verdura. o por ahi no
El tema es q ahora q lo pienso un poco mejor tengo varios datos q poner como mi user y pass. y esas cosas. y esto no va con lo que seria sockets. Puede ser?

Saludos
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Web cam caputras y envio para web
« Respuesta #3 en: 17 Septiembre 2010, 07:30 am »

.
Mi idea es solo Tomar una captura cada vez que se visite la pagina, y el programa SOLO y UNICAMENTE va a Tomar capturas en cada peticion y te las mandara por Socket con el Protocolo HTTP.

Por otro lo que dices de que tome cada X tiempo y los ponga en una carpeta pues es otra alternativa no te la recomiendo ya que no le veo caso el que trabaje la WebCam cuando no se nesesita, por ello el metodo independiente TODO EN EL EXE sin depender de uns ervidor Web u otros Soft es mejor!¡.

Por dejarlo mas claro:

Tu haces el programa con Sockets y el protocolo HTTP

El ejecutable final SIMPLE no te pesara mas de 200 kb's seguro es mas no creo que ni llegue a 100kb's y ademas el rendimiento y Optimizacion serian muchisimo mejor

Por otro lado si tomas Cada X tiempo y guardas la Imagen en el HD, instalas un servidor Web, lo configuras, etc... el rendimiento y su optimización es de lo peor ya que Tu WebCam trabajaria en momentos que nadie utilizaria es decir se puede quedar tomando 24/7 en todo el año una captura y en esas miles de capturas solo viste digamos 42... no es apropiado no crees xP

El metodo que te doy es que solo en cada visita tomara una captura y te la enviaria y sin tocar el HD bueno eso si lo haces asi!¡.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
ranslsad


Desconectado Desconectado

Mensajes: 492


Dim Ranslsad as String * :P - Que Vicio!


Ver Perfil WWW
Re: Web cam caputras y envio para web
« Respuesta #4 en: 17 Septiembre 2010, 14:30 pm »

Bueno amigo aca te dejo un ejemplo que me descargue hace mucho y lo tengo en li libreria espero que te sirva porque es exactamente lo que intentas de hacer sin servidor ni menos.

http://www.filefront.com/17296676/WebCam Online en Web.zip

El programa posee un webserver propio en la misma aplicacion con lo cual con ese programa simplemente lo abres ingresas la url en tu buscar y wala...

Espero que te sirva de ejemplo ya que es una idea de 10...

Salu2

Ranslsad!

En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Web cam caputras y envio para web
« Respuesta #5 en: 17 Septiembre 2010, 16:06 pm »

Espero que te sirva de ejemplo ya que es una idea de 10...

Yo creo que en si es totalmente todo lo que el requiere...! No necesita mas...! Acabo de testearlo y funciona perfectamente bien...!
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Web cam caputras y envio para web
« Respuesta #6 en: 17 Septiembre 2010, 16:26 pm »

.
si eso fue todo...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines