Existe una librería que se llama AVICAP32.DLL que contiene las funciones de multimedia del sistema y que, entre otras cosas, te permite controlar la webcam.
Esta librería tiene la función
capCreateCaptureWindow que crea una ventana dentro de otra (ventana padre) para enviar las imágenes tomadas por la webcam y devuelve el controlador de ventana (hWnd).
Para implementarla es muy sencillo, se crea un PictureBox y luego se llama a esta función pasandole como argumento hWndParent (ventana padre) en controlador de ventana del PictureBox. Por ej:
Const RES_X = 680 'Resolución horizontal
Const RES_Y = 480 'Resolución vertical
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Private hWndCap As Long
Private Sub Form_Load()
'NOTA: picCapFrame es el nombre de un control PictureBox.
'
'Crea la ventana a la que se enviarán las imágenes de la cam.
'
hWndCap = capCreateCaptureWindow(vbNullString,0,0,0, RES_X, RES_Y, picCapFrame.hWnd, 0)
End Sub
Luego queda utilizar la función
SendMessage para enviarle los mensajes a la ventana que creamos (hWndCap ). Hay varios mensajes predefinidos que controlan las acciones de la webcam:
Const WM_CAP_CONNECT = 1034 'Conecta el dispositivo de captura.
Const WM_CAP_DISCONNECT = 1035 'Desconecta el dispositivo de captura.
Const WM_CAP_GET_FRAME = 1084 'Obtiene un frame desde el dispositivo.
Const WM_CAP_COPY = 1054 'Copia el frame capturado con WM_CAP_GET_FRAME al portapapeles.
Sabiendo esto se puede ir obteniendo frame por frame y enviando los datos en tiempo real con el control WinSock o usando la API de winsock, pero claro esto conlleva un consumo muy grande de ancho de banda y si el programa se ejecuta en una pc con conexión de 56k va a ser muy alevoso
.
Por último, antes de descargar el programa debe llamarse a
DestroyWindow para liberar el controlador de ventana.
Con esos datos creo que ya se puede empezar a probar, de lo contrario remitirse a google
. Igualmente dejo el link de MSDN que es de donde saqué toda la referencia de las funciones.
Windows MultimediaSaludos.