Habs doch früher geschafft:
Imports System.Runtime.InteropServices
Public Class WebCamCapture
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias _
"capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle _
As Int32, ByVal x As Int32, ByVal y As Int32, ByVal nWidth As Int32, _
ByVal nHeight As Int32, ByVal hWndParent As Int32, ByVal nID As Int32) As _
Int32
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal _
lParam As Int32) As Int32
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByRef _
lParam As CAPSTATUS) As Int32
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As _
Int32, ByVal hWndInsertAfter As Int32, ByVal x As Int32, ByVal y As Int32, _
ByVal cx As Int32, ByVal cy As Int32, ByVal wFlags As Int32) As Int32
Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hwnd As _
Int32) As Int32
Private Declare Function capGetDriverDescription Lib "avicap32.dll" Alias _
"capGetDriverDescriptionA" (ByVal wDriverIndex As Int32, ByVal lpszName As _
String, ByVal cbName As Int32, ByVal lpszVer As String, ByVal cbVer As _
Int32) As Int32
Private Const WS_VISIBLE As Int32 = &H10000000
Private Const WS_CHILD As Int32 = &H40000000
Private Const WM_CAP_SET_PREVIEWRATE As Int32 = (WM_CAP_START + 52)
Private Const HWND_BOTTOM As Int32 = 1
Private Const SWP_NOMOVE As Int32 = &H2
Private Const SWP_NOZORDER As Int32 = &H4
Private Const WM_CAP_GET_STATUS As Int32 = (WM_CAP_START + 54)
Private Const WM_CAP_FILE_GET_CAPTURE_FILEA As Int32 = (WM_CAP_START + 21)
Private Const WM_CAP_FILE_SET_CAPTURE_FILEA As Int32 = (WM_CAP_START + 20)
Private Const WM_CAP_SEQUENCE As Int32 = (WM_CAP_START + 62)
Private Const WM_CAP_FILE_SAVEASA As Int32 = (WM_CAP_START + 23)
Private Const WM_USER As Int32 = &H400
Private Const WM_CAP_START As Int32 = WM_USER
Private Const WM_CAP_DRIVER_CONNECT As Int32 = (WM_CAP_START + 10)
Private Const WM_CAP_SET_SCALE As Int32 = (WM_CAP_START + 53)
Private Const WM_CAP_SET_PREVIEW As Int32 = (WM_CAP_START + 50)
Private Const WM_CAP_DRIVER_DISCONNECT As Int32 = (WM_CAP_START + 11)
Private Const WM_CAP_GRAB_FRAME As Int32 = (WM_CAP_START + 60)
Private Const WM_CAP_EDIT_COPY As Int32 = (WM_CAP_START + 30)
<System.Runtime.InteropServices.StructLayout( _
Runtime.InteropServices.LayoutKind.Sequential)> _
Public Structure Point
Public x As UInt32
Public y As UInt32
End Structure
<System.Runtime.InteropServices.StructLayout( _
Runtime.InteropServices.LayoutKind.Sequential)> _
Public Structure CAPSTATUS
Dim uiImageWidth As UInt32
Dim uiImageHeight As UInt32
Dim fLiveWindow As Boolean
Dim fOverlayWindow As Boolean
Dim fScale As Boolean
Dim ptScroll As Point
Dim fUsingDefaultPalette As Boolean
Dim fAudioHardware As Boolean
Dim fCapFileExists As Boolean
Dim dwCurrentVideoFrame As UInt32
Dim dwCurrentVideoFramesDropped As UInt32
Dim dwCurrentWaveSamples As UInt32
Dim dwCurrentTimeElapsedMS As UInt32
Dim hPalCurrent As IntPtr
Dim fCapturingNow As Boolean
Dim dwReturn As UInt32
Dim wNumVideoAllocated As UInt32
Dim wNumAudioAllocated As UInt32
End Structure
Private capwnd As Integer
Private active As Boolean = False
Private wndname As String
Private capparent As Control
Private _capfile As String
Private _filecapactive As Boolean
Public Sub New(ByVal capwndname As String)
wndname = capwndname
End Sub
Public Class CapDevice
Public Name As String
Public Version As String
Public iDeviceIdx As Integer
Public Overrides Function ToString() As String
Return Name
End Function
End Class -----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008
|