if hWndC <> 0 then exit;
hWndC := capCreateCaptureWindowA('WINACESSO',WS_CHILD or WS_VISIBLE ,image1.Left,image1.Top,image1.width,image1.height,frmCapturaImg.Handle,0);
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;
///// === CAPTURA IMAGEM === /////
rg := frmCadMoradores.txtCadMoradores_RG.Text;
if hWndC <> 0 then
begin
SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar('C:\WINACESSO\FOTOS\' + rg + '.bmp')));
end;
///// === DESCONECTA WEBCAM === /////
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
hWndC := 0;
end;
Pergunta
Gabriel Cabral
Boa tarde, pessoal. Tudo bem?!
Estou precisando de uma grande ajuda para utilizar mais de uma webcam.
Preciso de algo que liste as webcams instaladas ou alguma outra forma que eu possa escolher qual webcam utilizar.
Já vi inúmeros tópicos relativos a webcam, mas nada que me ajudasse neste caso.
O programa está fazendo a captura de imagem da seguinte forma:
var frmCapturaImg: TfrmCapturaImg; hWndC: THandle = 0; rg: string; implementation uses U_frmCadMoradores; {$R *.dfm} const WM_CAP_START = WM_USER; const WM_CAP_STOP = WM_CAP_START + 68; const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10; const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11; const WM_CAP_SAVEDIB = WM_CAP_START + 25; const WM_CAP_GRAB_FRAME = WM_CAP_START + 60; const WM_CAP_SEQUENCE = WM_CAP_START + 62; const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20; const WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63; const WM_CAP_SET_OVERLAY =WM_CAP_START+ 51 ; const WM_CAP_SET_PREVIEW =WM_CAP_START+ 50; const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6; const WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2; const WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3; const WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5; const WM_CAP_SET_SCALE=WM_CAP_START+ 53 ; const WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52; function capCreateCaptureWindowA(lpszWindowName : PCHAR; dwStyle : longint; x : integer; y : integer;nWidth : integer;nHeight : integer;ParentWin : HWND; nId : integer): HWND; STDCALL; EXTERNAL 'AVICAP32.DLL';///// === CONECTA WEBCAM === /////
if hWndC <> 0 then exit; hWndC := capCreateCaptureWindowA('WINACESSO',WS_CHILD or WS_VISIBLE ,image1.Left,image1.Top,image1.width,image1.height,frmCapturaImg.Handle,0); if hWndC <> 0 then begin SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0); SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0); SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0); SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0); SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0); SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0); end;///// === CAPTURA IMAGEM === /////
rg := frmCadMoradores.txtCadMoradores_RG.Text; if hWndC <> 0 then begin SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar('C:\WINACESSO\FOTOS\' + rg + '.bmp'))); end;///// === DESCONECTA WEBCAM === /////
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.