1、VB同时连接两个USB摄像头1VB同时连接两个USB摄像头1 窗体代码Dim Caps1 As CAPDRIVERCAPSDim Caps As CAPDRIVERCAPSPrivate Sub Command1_Click()capDlgVideoSource lwndCEnd SubPrivate Sub Command2_Click()capDlgVideoSource lwndC1End SubPrivate Sub Form_Load() Dim lpszName As String * 100 Dim lpszVer As String * 100 Dim lpszName1 As
2、 String * 100 Dim lpszVer1 As String * 100 capGetDriverDescriptionA 0, lpszName, 100, lpszVer, 100 / Retrieves driver info MsgBox lpszVer, , lpszName lwndC = capCreateCaptureWindowA(lpszName, WS_VISIBLE Or WS_CHILD, 0, 0, Picture1.Width, Picture1.Height, Picture1.hWnd, 0) If capDriverConnect(lwndC,
3、0) Then capDriverGetCaps lwndC, VarPtr(Caps), Len(Caps) capPreviewScale lwndC, True capPreviewRate lwndC, 66 capPreview lwndC, True capSetMCIDeviceName lwndC, VarPtr(lpszName) SetWindowPos lwndC, 1, 0, 0, Picture1.Width, Picture1.Height, SWP_NOMOVE Or SWP_NOZORDER End If capGetDriverDescriptionA 1,
4、lpszName1, 100, lpszVer1, 100 / Retrieves driver info MsgBox lpszVer, , lpszName lwndC1 = capCreateCaptureWindowA(lpszName1, WS_VISIBLE Or WS_CHILD, 0, 0, Picture2.Width, Picture2.Height, Picture2.hWnd, 0) If capDriverConnect(lwndC1, 0) Then capDriverGetCaps lwndC1, VarPtr(Caps1), Len(Caps1) capPrev
5、iewScale lwndC1, True capPreviewRate lwndC1, 66 capPreview lwndC1, True SetWindowPos lwndC1, 1, 0, 0, Picture2.Width, Picture2.Height, SWP_NOMOVE Or SWP_NOZORDER End If End Sub模块1:/ -/ Windows API Constants / Types / Declarations/ -Public Const WM_USER = &H400Type POINTAPI x As Long y As LongEnd
6、 TypeDeclare Function SendMessage Lib user32 Alias SendMessageA (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As LongDeclare Function SendMessageS Lib user32 Alias SendMessageA (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As
7、 String) As Long/ -/ Window Messages WM_CAP. which can be sent to an AVICAP window/ -/ Defines start of the message rangePublic Const WM_CAP_START = WM_USERPublic Const WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1Public Const WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2Public Const WM_CAP_SET_CALLBACK
8、_STATUS = WM_CAP_START + 3Public Const WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4Public Const WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5Public Const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6Public Const WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7Public Const WM_CAP_GET_USER_DATA =
9、 WM_CAP_START + 8Public Const WM_CAP_SET_USER_DATA = WM_CAP_START + 9 Public Const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10Public Const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11Public Const WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12Public Const WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13Public
10、 Const WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14Public Const WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20Public Const WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21Public Const WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22Public Const WM_CAP_FILE_SAVEAS = WM_CAP_START + 23Public Const WM_CAP_FILE_
11、SET_INFOCHUNK = WM_CAP_START + 24Public Const WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25Public Const WM_CAP_EDIT_COPY = WM_CAP_START + 30Public Const WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35Public Const WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36Public Const WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41P
12、ublic Const WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42Public Const WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43Public Const WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44Public Const WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45Public Const WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46Public Const WM_CAP_
13、SET_PREVIEW = WM_CAP_START + 50Public Const WM_CAP_SET_OVERLAY = WM_CAP_START + 51Public Const WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52Public Const WM_CAP_SET_SCALE = WM_CAP_START + 53Public Const WM_CAP_GET_STATUS = WM_CAP_START + 54Public Const WM_CAP_SET_SCROLL = WM_CAP_START + 55Public Const W
14、M_CAP_GRAB_FRAME = WM_CAP_START + 60Public Const WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61Public Const WM_CAP_SEQUENCE = WM_CAP_START + 62Public Const WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63Public Const WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64Public Const WM_CAP_GET_SEQUENCE_SETUP = WM_CA
15、P_START + 65Public Const WM_CAP_SET_MCI_DEVICE = WM_CAP_START + 66Public Const WM_CAP_GET_MCI_DEVICE = WM_CAP_START + 67Public Const WM_CAP_STOP = WM_CAP_START + 68Public Const WM_CAP_ABORT = WM_CAP_START + 69Public Const WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70Public Const WM_CAP_SINGLE_FRAME_C
16、LOSE = WM_CAP_START + 71Public Const WM_CAP_SINGLE_FRAME = WM_CAP_START + 72Public Const WM_CAP_PAL_OPEN = WM_CAP_START + 80Public Const WM_CAP_PAL_SAVE = WM_CAP_START + 81Public Const WM_CAP_PAL_PASTE = WM_CAP_START + 82Public Const WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83Public Const WM_CAP_PAL_M
17、ANUALCREATE = WM_CAP_START + 84/ Following added post VFW 1.1Public Const WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85/ Defines end of the message rangePublic Const WM_CAP_END = WM_CAP_SET_CALLBACK_CAPCONTROL/ -/ Structures/ -Type CAPDRIVERCAPS wDeviceIndex As Long / Driver index in system.ini
18、 fHasOverlay As Long / Can device overlay? fHasDlgVideoSource As Long / Has Video source dlg? fHasDlgVideoFormat As Long / Has Format dlg? fHasDlgVideoDisplay As Long / Has External out dlg? fCaptureInitialized As Long / Driver ready to capture? fDriverSuppliesPalettes As Long / Can driver make pale
19、ttes? hVideoIn As Long / Driver In channel hVideoOut As Long / Driver Out channel hVideoExtIn As Long / Driver Ext In channel hVideoExtOut As Long / Driver Ext Out channelEnd TypeType CAPSTATUS uiImageWidth As Long / Width of the image uiImageHeight As Long / Height of the image fLiveWindow As Long
20、/ Now Previewing video? fOverlayWindow As Long / Now Overlaying video? fScale As Long / Scale image to client? ptScroll As POINTAPI / Scroll position fUsingDefaultPalette As Long / Using default driver palette? fAudioHardware As Long / Audio hardware present? fCapFileExists As Long / Does capture fi
21、le exist? dwCurrentVideoFrame As Long / # of video frames captd dwCurrentVideoFramesDropped As Long / # of video frames dropped dwCurrentWaveSamples As Long / # of wave samples captd dwCurrentTimeElapsedMS As Long / Elapsed capture duration hPalCurrent As Long / Current palette in use fCapturingNow
22、As Long / Capture in progress? dwReturn As Long / Error value after any operation wNumVideoAllocated As Long / Actual number of video buffers wNumAudioAllocated As Long / Actual number of audio buffersEnd TypeType CAPTUREPARMS dwRequestMicroSecPerFrame As Long / Requested capture rate fMakeUserHitOK
23、ToCapture As Long / Show Hit OK to cap dlg? wPercentDropForError As Long / Give error msg if > (10%) fYield As Long / Capture via background task? dwIndexSize As Long / Max index size in frames (32K) wChunkGranularity As Long / Junk chunk granularity (2K) fUsingDOSMemory As Long / Use DOS buffers
24、? wNumVideoRequested As Long / # video buffers, If 0, autocalc fCaptureAudio As Long / Capture audio? wNumAudioRequested As Long / # audio buffers, If 0, autocalc vKeyAbort As Long / Virtual key causing abort fAbortLeftMouse As Long / Abort on left mouse? fAbortRightMouse As Long / Abort on right mo
25、use? fLimitEnabled As Long / Use wTimeLimit? wTimeLimit As Long / Seconds to capture fMCIControl As Long / Use MCI video source? fStepMCIDevice As Long / Step MCI device? dwMCIStartTime As Long / Time to start in MS dwMCIStopTime As Long / Time to stop in MS fStepCaptureAt2x As Long / Perform spatia
26、l averaging 2x wStepCaptureAverageFrames As Long / Temporal average n Frames dwAudioBufferSize As Long / Size of audio bufs (0 = default) fDisableWriteCache As Long / Attempt to disable write cacheEnd TypeType CAPINFOCHUNK fccInfoID As Long / Chunk ID, ICOP for copyright lpData As Long / pointer to
27、data cbData As Long / size of lpDataEnd TypeType VIDEOHDR lpData As Long / address of video buffer dwBufferLength As Long / size, in bytes, of the Data buffer dwBytesUsed As Long / see below dwTimeCaptured As Long / see below dwUser As Long / user-specific data dwFlags As Long / see below dwReserved
28、(3) As Long / reserved; do not useEnd Type/ The two functions exported by AVICapDeclare Function capCreateCaptureWindowA Lib avicap32.dll ( _ ByVal lpszWindowName As String, _ ByVal dwStyle As Long, _ ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, _ ByVal hWndParen
29、t As Long, ByVal nID As Long) As LongDeclare Function capGetDriverDescriptionA Lib avicap32.dll ( _ ByVal wDriver As Integer, _ ByVal lpszName As String, _ ByVal cbName As Long, _ ByVal lpszVer As String, _ ByVal cbVer As Long) As Boolean/ -/ String IDs from status and error callbacks/ -Public Const IDS_CAP_BEGIN = 300 /* Capture Start */Public Const IDS_CAP_END = 301 /* Capture End */Public Const IDS_CAP_INFO = 401 /* %s */Public Const IDS_CAP_OUTOFMEM
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1