vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Webcam Klasse Teil 3 
Autor: icetea123
Datum: 28.05.08 15:35

    Private Sub ParentResizing(ByVal sender As Object, ByVal e As EventArgs)
        If Not active Then Return
 
        Try
            ' Resize window to fit in picturebox 
            SetWindowPos(capwnd, HWND_BOTTOM, 0, 0, capparent.ClientSize.Width, _
              capparent.ClientSize.Height, _
                                   SWP_NOMOVE Or SWP_NOZORDER)
            capparent.BackgroundImage = Me.GetCurrentPicture()
        Catch
        End Try
    End Sub
 
    Public Sub StopCapture()
        lastimage = Nothing
        If active = False Then Return
        SendMessage(capwnd, WM_CAP_SET_PREVIEW, 0, 0)
        SendMessage(capwnd, WM_CAP_DRIVER_DISCONNECT, _
          System.Runtime.InteropServices.Marshal.StringToCoTaskMemAnsi( _
          wndname), 0)
        DestroyWindow(capwnd)
        RemoveHandler capparent.Resize, AddressOf ParentResizing
        active = False
        _filecapactive = False
    End Sub
 
    Private lastimage As Image
 
    Public Function GetCurrentPicture() As Image
        SendMessage(capwnd, WM_CAP_EDIT_COPY, 0, 0)
 
        If Clipboard.ContainsImage Then
            lastimage = Clipboard.GetImage()
        End If
        Return lastimage
    End Function
 
    Public Function StartFileCapture() As Boolean
        If active = False Then Return False
        If _filecapactive Then
            Throw New InvalidOperationException("Der Datei-Aufnahmevorgang" & _
              "wurde bereits gestartet. Benutzen Sie stattdessen die Funktion" & _
              "CapFileSaveAs()")
        End If
 
        Dim success As Boolean = False
        success = SendMessage(capwnd, WM_CAP_SEQUENCE, 0, 0)
        _filecapactive = success
        Return success
    End Function
 
    Public Function CapFileSaveAs(ByVal filename As String) As Boolean
        If (Not active) Or (Not _filecapactive) Then Return False
 
        Dim success As Boolean
 
        Dim strptr As IntPtr = Marshal.StringToCoTaskMemAnsi(filename & Chr(0))
        success = SendMessage(capwnd, WM_CAP_FILE_SAVEASA, 0, strptr.ToInt32)
        Marshal.FreeCoTaskMem(strptr)
 
        Return success
    End Function
 
    Public Property CaptureFileName() As String
        Get
            Dim strptr As IntPtr = Marshal.AllocCoTaskMem(255)
            Dim success As Boolean = SendMessage(capwnd, _
              WM_CAP_FILE_GET_CAPTURE_FILEA, 255, strptr.ToInt32)
            Dim data(0 To 255) As Byte
            Marshal.Copy(strptr, data, 0, 255)
            Marshal.FreeCoTaskMem(strptr)
            Return System.Text.Encoding.Default.GetString(data).Trim
        End Get
        Set(ByVal value As String)
            If _filecapactive Then
                Throw New InvalidOperationException("Der Datei-Aufnahmevorgang" & _
                  "wurde bereits gestartet. Benutzen Sie stattdessen die" & _
                  "Funktion CapFileSaveAs()")
            End If
            If _capfile <> value Then
                _capfile = value
                Dim strptr As IntPtr = Marshal.StringToCoTaskMemAnsi(_capfile & _
                  Chr(0))
                Dim success As Boolean = SendMessage(capwnd, _
                WM_CAP_FILE_SET_CAPTURE_FILEA, 0, strptr.ToInt32)
                Marshal.FreeCoTaskMem(strptr)
            End If
        End Set
    End Property
 
    Public ReadOnly Property Status() As CAPSTATUS
        Get
            Dim retval As CAPSTATUS
            SendMessage(capwnd, WM_CAP_GET_STATUS, _
              System.Runtime.InteropServices.Marshal.SizeOf(retval), retval)
            Return retval
        End Get
    End Property
 
    Public ReadOnly Property IsCapturingToFile() As Boolean
        Get
            Return _filecapactive
        End Get
    End Property
 
    Public ReadOnly Property IsActive() As Boolean
        Get
            Return active
        End Get
    End Property
 
    Protected Overrides Sub Finalize()
        StopCapture()
        MyBase.Finalize()
    End Sub
End Class
Schwachsinnig diese Begrenzung auf 5 kb. 15 kb wär auch ganz Ok. Kriegt man wenigstens noch ganze Codeblöcke übertragen.

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Webcam Video auf Form Anzeigen3.431Tredory27.05.08 22:28
Re: Webcam Video auf Form Anzeigen2.857Christian2528.05.08 00:17
Re: Webcam Video auf Form Anzeigen2.727icetea12328.05.08 07:38
Re: WebCam Klasse Teil 13.064icetea12328.05.08 15:33
Re: Webcam Klasse Teil 22.764icetea12328.05.08 15:34
Re: Webcam Klasse Teil 32.985icetea12328.05.08 15:35
Re: Webcam Klasse Teil 32.678Tredory28.05.08 17:16
Re: Webcam Klasse Teil 32.689Tredory28.05.08 17:53
Re: Webcam Klasse Teil 32.690Tredory28.05.08 18:15
Re: Webcam Klasse Teil 32.645icetea12328.05.08 18:53
Re: Webcam Klasse Teil 32.673Tredory28.05.08 19:53
Re: Webcam Klasse Teil 32.715Tredory28.05.08 21:31
Re: Webcam Klasse Teil 32.734icetea12329.05.08 14:50
Re: Webcam Klasse Teil 32.807Tredory29.05.08 20:43
Re: Webcam Klasse Teil 32.768icetea12330.05.08 14:50
Re: Webcam Klasse Teil 32.698Tredory30.05.08 16:51
Re: Webcam Video auf Form Anzeigen2.802Kyratim28.05.08 19:16
Re: Webcam Video auf Form Anzeigen2.681icetea12328.05.08 20:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel