|
|
Postada em 01/10/2008 01:12 hs
Já pesquisei e peguei aqui nas dicas uma rotina, que não funcionou, dá um erro nas propriedades do controle.
Pequei também um exemplo do macoratti, que só usa API, mas também não deu certo, congela e trava o VB. Minha webcam, uma DLink C310 funciona sem problemas.
Alguém tem um exemplo funcionando que pudesse me passar?
|
|
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 01/10/2008 09:20 hs
para coisas simples, este código a seguir funciona perfeito: '(((( COLOQUE UMA PICTURE BOX NO SEU FORM )))))) '(((( COLOQUE UM BOTÃO COMMAND1 NO SEU FORM ))))) 'DECLARACOES 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 Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function ReleaseCapture Lib "USER32" () As Long Private Const WM_CAP_DRIVER_CONNECT As Long = 1034 Private Const WM_CAP_DRIVER_DISCONNECT As Long = 1035 Private Const WM_CAP_GRAB_FRAME As Long = 1084 Private Const WM_CAP_EDIT_COPY As Long = 1054 Private Const WM_CAP_DLG_VIDEOFORMAT As Long = 1065 Private Const WM_CAP_DLG_VIDEOSOURCE As Long = 1066 Private Const WM_CLOSE = &H10 Private mCapHwnd As Long Private Sub Form_Load() 'Inicia a câmera mCapHwnd = capCreateCaptureWindow("My Own Capture Window", 0, 0, 0, 320, 240, Me.hwnd, 0) SendMessage mCapHwnd, WM_CAP_DRIVER_CONNECT, 0, 0 End Sub Private Sub Form_Terminate() 'Desliga a câmera SendMessage mCapHwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0 End Sub Private Sub Command1_Click() 'Captura a imagem atual (PODERIA SER COLOCADO NUM TIMER PARA IMAGEM CONTINUA) Clipboard.Clear SendMessage mCapHwnd, WM_CAP_GRAB_FRAME, 0, 0 SendMessage mCapHwnd, WM_CAP_EDIT_COPY, 0, 0 Picture1.Picture = Clipboard.GetData End Sub
|
|
|
|
|
|
Postada em 01/10/2008 09:47 hs
Valeu, Treze, mas acho que tenho que colocar o timer, pois no exemplo, a imagem não aparece, só depois que clico no botão para capturar.
O que o timer faz exatamente? E como colocar no projeto? Pode me passar esse código, para eu testar?
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
Postada em 01/10/2008 10:00 hs
é Simples tanta assim Private Sub Timer1_Timer() Clipboard.Clear SendMessage mCapHwnd, WM_CAP_GRAB_FRAME, 0, 0 SendMessage mCapHwnd, WM_CAP_EDIT_COPY, 0, 0 Picture1.Picture = Clipboard.GetData End Sub lógico mude a propriedade interval do timer para 1 acrescente mais uma picturebox no seu form e cole no botão o seguinte: Private Sub Command1_Click() Picture2.Picture = Picture1.Picture End Sub Veja se funciona como deseja
|
|
|
|
|
|
Postada em 01/10/2008 10:11 hs
Ok, valeu mesmo...
eu tinha pego o exemplo do Macoratti e fiz esas alterações quase como vc passou. Estava congelando ainda, mas depois que ajustei com o teu código, deu certo.
Mais uma pra biblioteca...
|
|
|
|
|