Hola! Estoy con un programa que captura una imagen de la webcam, es aplicación de consola, sobre Win7, uso las funciones capCreateCaptureWindow, capDriverConnect, capDriverDisconnect y SendMessage, la imagen se captura, pero 2*3 me pide que seleccione la cámara de una lista (en la que solo existe una cámara, porque es la única que tengo), si bien ya he buscado por otros lados y di con gente que tiene el mismo problema quisiera saber por que a veces sale y a veces no.. y de ser posible que no salga nunca, porque quema mucho jaja
CODE:
int GetWebCam()
{
hWnd = GetConsoleWindow();
Captura = capCreateCaptureWindow("handle", WS_CHILD | WS_VISIBLE, 0, 0, 640, 480, hWnd, 1);
if (capDriverConnect(Captura, 0) != 0)
{
EmptyClipboard();
//SendMessage(Captura, WM_CAP_DLG_VIDEOSOURCE, 0, 0);
ShowWindow(Captura, SW_HIDE);
SendMessage(Captura, WM_CAP_SET_PREVIEW, true, 0);
SendMessage(Captura, WM_CAP_GRAB_FRAME, 0, 0);
SendMessage(Captura, WM_CAP_EDIT_COPY, 0, 0);
OpenClipboard(NULL);
HBM = HBITMAP(GetClipboardData(CF_BITMAP));
SaveToFile(HBM, "Imagen.jpg");
capDriverDisconnect(Captura);
return 0;
}
cout << "Error capCreateCaptureWin: " << GetLastError() << endl;
return -1;
}
Saludos!
PD: SendMessage(Captura, WM_CAP_DLG_VIDEOSOURCE, 0, 0) Esta comentado porque si dejo esa linea sale siempre el cuadro...
PD2: Creo que GetLastError no tiene uso en este codigo, pero la deje para no editar el codigo que salga todo torcido.