Oppure

Loading
13/09/10 11:23
pp
Ciao,

sono nuova di questo forum ed ho un problema grandissimo con l'acquisizione video attraverso una scheda dati Pinnacle Movie Board. Devo sviluppare un'applicazione per acquisire immagini da un dispositivo esterno.Prima utilizzavo una scheda sempre Pinnacle di circa 5 anni ed un programma in VB6 che utilizzava avicap32.dll, adesso però con la nuova non funziona. Questo è un pezzo del codice che utilizzavo prima:

'Creazione di una Capture Window
hWndCapture = capCreateCaptureWindow(CapWindowCaption, dwStyle, X, Y, 320, 240, Me.hwnd, nID)

'* Connessione della Capture Window al capture driver
fOK = capDriverConnect(hWndCapture)
If fOK Then
'* Resize della capture window
CapResizeWin hWndCapture
'* Richiesta delle capacità del capture driver
capDriverGetCaps hWndCapture, PubCapDrv
If PubCapDrv.fHasOverlay Then '* Se è possibile modo overlay...
fOK = capOverlay(hWndCapture, True) '* ...abilita l'overlay
Else
fOK = capPreviewRate(hWndCapture, 120) '* Altrimenti setta il PreviewRate
fOK = capPreview(hWndCapture, True) '* e lo abilita
End If
RetVal = MoveWindow(hWndCapture, pctvideo.Left, pctvideo.Top, ImageWidth, ImageHeight, True)

Else '* Connessione della Capture Window al capture driver fallita
Call MsgBox("Impossibile connettersi al driver di cattura." & NEWLINE & "Accertarsi di aver installato correttamente la scheda.", vbCritical + vbOKOnly, "EcoMonitor";)
End If
Mi potete aiutare?
Grazie
aaa
13/09/10 15:07
GrG
Prova così...

in un modulo:
Global Const ws_child As Long = &H40000000
Global Const ws_visible As Long = &H10000000
Global Const WM_USER = 1024
Global Const wm_cap_driver_connect = WM_USER + 10
Global Const wm_cap_set_preview = WM_USER + 50
Global Const WM_CAP_SET_PREVIEWRATE = WM_USER + 52
Global Const WM_CAP_DRIVER_DISCONNECT As Long = WM_USER + 11
Global Const WM_CAP_DLG_VIDEOFORMAT As Long = WM_USER + 41
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal a As String, ByVal b As Long, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As Integer, ByVal g As Long, ByVal h As Integer) As Long


Poi nel form:
Const WM_CAP As Integer = &H400
Const wm_cap_driver_connect As Long = WM_CAP + 10
Const WM_CAP_DRIVER_DISCONNECT As Long = WM_CAP + 11
Const WM_CAP_EDIT_COPY As Long = WM_CAP + 30
Dim hwdc As Long
Dim startcap As Boolean

Private Sub Apri() 'Apre
Dim temp As Long
hwdc = capCreateCaptureWindow("Dixanta Vision System", ws_child Or ws_visible, 0, 0, 320, 240, Picture1.hWnd, 0)
If (hwdc <> 0) Then
temp = SendMessage(hwdc, wm_cap_driver_connect, 0, 0)
temp = SendMessage(hwdc, wm_cap_set_preview, 1, 0)
temp = SendMessage(hwdc, WM_CAP_SET_PREVIEWRATE, 30, 0)
startcap = True
Else
MsgBox ("No Webcam found")
End If
End Sub

Private Sub Chiudi() 'chiude
Dim temp As Long
If startcap = True Then
temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&)
startcap = False
End If
End Sub

Private Sub VideoFormat() 'formato video
Dim temp As Long
If startcap = True Then
temp = SendMessage(hwdc, WM_CAP_DLG_VIDEOFORMAT, 0&, 0&)
End If
End Sub


Aggiungi una picture (Picture1) e due command. Uno che richiama la sub apri e l'altro la sub chiudi.
aaa
14/09/10 11:25
pp
Grazie mille, proverò così e poi ti faccio sapere se va.
aaa
14/09/10 15:37
pp
Purtroppo non funziona nemmeno così!La scheda di acquisizione è una Pinnacle DV/AV ed è collegata ad un ecografo (di cui prendo le immagini) tramite PAL, potrebbe esserci qualche problema in queste connessioni?
Grazie
aaa
15/09/10 13:46
GrG
provando quel codice che errore ti da?

Comunque quando hai comprato la Pinnacle DV/AV, che mi sembra sia una webcam, non hai avuto anche un cd con un software per la sua gestione?

E con il suo software le immagini si vedono?
aaa
15/09/10 14:59
pp
non dà nessun messaggio di errore, apre una finestra molto piccola ma in cui non viene visualizzato nulla e crasha. La scheda è Pinnacle Movie Board.
aaa
15/09/10 19:54
GrG
Mi spiace ma non sono in grado di aiutarti...

Io ho una Logitech e mi funziona tutto benissimo, e non solo a me... magari dovresti provare a cambiare webcam...
aaa