Read Barcode From Live Video Cam - VB.NET
BarCode Reader SDK sample in VB.NET demonstrating ‘Read Barcode From Live Video Cam’
MainForm.Designer.vb
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MainForm
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.btnUpdateCameraImageDimensions = New System.Windows.Forms.Button()
Me.cbStopOnFirstBarcode = New System.Windows.Forms.CheckBox()
Me.label4 = New System.Windows.Forms.Label()
Me.tbCameraHeight = New System.Windows.Forms.TextBox()
Me.tbCameraWidth = New System.Windows.Forms.TextBox()
Me.label2 = New System.Windows.Forms.Label()
Me.lblScanning = New System.Windows.Forms.Label()
Me.label3 = New System.Windows.Forms.Label()
Me.cmbBarcodeType = New System.Windows.Forms.ComboBox()
Me.btnExit = New System.Windows.Forms.Button()
Me.label1 = New System.Windows.Forms.Label()
Me.cmbCamera = New System.Windows.Forms.ComboBox()
Me.rtbFoundBarcodes = New System.Windows.Forms.RichTextBox()
Me.btnStop = New System.Windows.Forms.Button()
Me.btnStart = New System.Windows.Forms.Button()
Me.pictureBoxPreview = New System.Windows.Forms.PictureBox()
Me.lblFoundBarcodes = New System.Windows.Forms.Label()
Me.Button1 = New System.Windows.Forms.Button()
CType(Me.pictureBoxPreview,System.ComponentModel.ISupportInitialize).BeginInit
Me.SuspendLayout
'
'btnUpdateCameraImageDimensions
'
Me.btnUpdateCameraImageDimensions.Location = New System.Drawing.Point(265, 64)
Me.btnUpdateCameraImageDimensions.Name = "btnUpdateCameraImageDimensions"
Me.btnUpdateCameraImageDimensions.Size = New System.Drawing.Size(71, 24)
Me.btnUpdateCameraImageDimensions.TabIndex = 4
Me.btnUpdateCameraImageDimensions.Text = "Update"
Me.btnUpdateCameraImageDimensions.UseVisualStyleBackColor = true
'
'cbStopOnFirstBarcode
'
Me.cbStopOnFirstBarcode.AutoSize = true
Me.cbStopOnFirstBarcode.Location = New System.Drawing.Point(14, 94)
Me.cbStopOnFirstBarcode.Name = "cbStopOnFirstBarcode"
Me.cbStopOnFirstBarcode.Size = New System.Drawing.Size(154, 17)
Me.cbStopOnFirstBarcode.TabIndex = 5
Me.cbStopOnFirstBarcode.Text = "Stop on first barcode found"
Me.cbStopOnFirstBarcode.UseVisualStyleBackColor = true
'
'label4
'
Me.label4.AutoSize = true
Me.label4.Location = New System.Drawing.Point(206, 69)
Me.label4.Name = "label4"
Me.label4.Size = New System.Drawing.Size(12, 13)
Me.label4.TabIndex = 46
Me.label4.Text = "x"
'
'tbCameraHeight
'
Me.tbCameraHeight.Location = New System.Drawing.Point(224, 66)
Me.tbCameraHeight.Name = "tbCameraHeight"
Me.tbCameraHeight.Size = New System.Drawing.Size(35, 20)
Me.tbCameraHeight.TabIndex = 3
Me.tbCameraHeight.Text = "480"
'
'tbCameraWidth
'
Me.tbCameraWidth.Location = New System.Drawing.Point(165, 66)
Me.tbCameraWidth.Name = "tbCameraWidth"
Me.tbCameraWidth.Size = New System.Drawing.Size(35, 20)
Me.tbCameraWidth.TabIndex = 2
Me.tbCameraWidth.Text = "640"
'
'label2
'
Me.label2.AutoSize = true
Me.label2.Location = New System.Drawing.Point(11, 69)
Me.label2.Name = "label2"
Me.label2.Size = New System.Drawing.Size(132, 13)
Me.label2.TabIndex = 45
Me.label2.Text = "Camera Image Dimensions"
'
'lblScanning
'
Me.lblScanning.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.lblScanning.AutoSize = true
Me.lblScanning.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204,Byte))
Me.lblScanning.Location = New System.Drawing.Point(582, 600)
Me.lblScanning.Name = "lblScanning"
Me.lblScanning.Size = New System.Drawing.Size(67, 13)
Me.lblScanning.TabIndex = 44
Me.lblScanning.Text = "Scanning..."
Me.lblScanning.Visible = false
'
'label3
'
Me.label3.AutoSize = true
Me.label3.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204,Byte))
Me.label3.Location = New System.Drawing.Point(11, 15)
Me.label3.Name = "label3"
Me.label3.Size = New System.Drawing.Size(131, 13)
Me.label3.TabIndex = 43
Me.label3.Text = "Barcode Type To Scan"
'
'cmbBarcodeType
'
Me.cmbBarcodeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cmbBarcodeType.FormattingEnabled = true
Me.cmbBarcodeType.Location = New System.Drawing.Point(165, 12)
Me.cmbBarcodeType.Name = "cmbBarcodeType"
Me.cmbBarcodeType.Size = New System.Drawing.Size(245, 21)
Me.cmbBarcodeType.Sorted = true
Me.cmbBarcodeType.TabIndex = 0
'
'btnExit
'
Me.btnExit.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.btnExit.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.btnExit.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204,Byte))
Me.btnExit.Location = New System.Drawing.Point(564, 690)
Me.btnExit.Name = "btnExit"
Me.btnExit.Size = New System.Drawing.Size(90, 26)
Me.btnExit.TabIndex = 9
Me.btnExit.Text = "Exit"
Me.btnExit.UseVisualStyleBackColor = true
'
'label1
'
Me.label1.AutoSize = true
Me.label1.Location = New System.Drawing.Point(11, 42)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(80, 13)
Me.label1.TabIndex = 42
Me.label1.Text = "Camera Device"
'
'cmbCamera
'
Me.cmbCamera.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cmbCamera.FormattingEnabled = true
Me.cmbCamera.Location = New System.Drawing.Point(165, 39)
Me.cmbCamera.Name = "cmbCamera"
Me.cmbCamera.Size = New System.Drawing.Size(245, 21)
Me.cmbCamera.TabIndex = 1
'
'rtbFoundBarcodes
'
Me.rtbFoundBarcodes.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.rtbFoundBarcodes.Location = New System.Drawing.Point(14, 616)
Me.rtbFoundBarcodes.Name = "rtbFoundBarcodes"
Me.rtbFoundBarcodes.Size = New System.Drawing.Size(640, 68)
Me.rtbFoundBarcodes.TabIndex = 6
Me.rtbFoundBarcodes.Text = ""
'
'btnStop
'
Me.btnStop.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles)
Me.btnStop.Enabled = false
Me.btnStop.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204,Byte))
Me.btnStop.Location = New System.Drawing.Point(100, 690)
Me.btnStop.Name = "btnStop"
Me.btnStop.Size = New System.Drawing.Size(80, 26)
Me.btnStop.TabIndex = 8
Me.btnStop.Text = "Stop"
Me.btnStop.UseVisualStyleBackColor = true
'
'btnStart
'
Me.btnStart.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles)
Me.btnStart.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204,Byte))
Me.btnStart.Location = New System.Drawing.Point(14, 690)
Me.btnStart.Name = "btnStart"
Me.btnStart.Size = New System.Drawing.Size(80, 26)
Me.btnStart.TabIndex = 7
Me.btnStart.Text = "Start"
Me.btnStart.UseVisualStyleBackColor = true
'
'pictureBoxPreview
'
Me.pictureBoxPreview.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.pictureBoxPreview.BackColor = System.Drawing.Color.White
Me.pictureBoxPreview.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.pictureBoxPreview.Location = New System.Drawing.Point(14, 117)
Me.pictureBoxPreview.Name = "pictureBoxPreview"
Me.pictureBoxPreview.Size = New System.Drawing.Size(640, 480)
Me.pictureBoxPreview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage
Me.pictureBoxPreview.TabIndex = 40
Me.pictureBoxPreview.TabStop = false
'
'lblFoundBarcodes
'
Me.lblFoundBarcodes.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles)
Me.lblFoundBarcodes.AutoSize = true
Me.lblFoundBarcodes.Location = New System.Drawing.Point(14, 600)
Me.lblFoundBarcodes.Name = "lblFoundBarcodes"
Me.lblFoundBarcodes.Size = New System.Drawing.Size(93, 13)
Me.lblFoundBarcodes.TabIndex = 38
Me.lblFoundBarcodes.Text = "Found 0 barcodes"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(416, 38)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(129, 23)
Me.Button1.TabIndex = 47
Me.Button1.Text = "Camera Properties"
Me.Button1.UseVisualStyleBackColor = true
'
'MainForm
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(664, 728)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.btnUpdateCameraImageDimensions)
Me.Controls.Add(Me.cbStopOnFirstBarcode)
Me.Controls.Add(Me.label4)
Me.Controls.Add(Me.tbCameraHeight)
Me.Controls.Add(Me.tbCameraWidth)
Me.Controls.Add(Me.label2)
Me.Controls.Add(Me.lblScanning)
Me.Controls.Add(Me.label3)
Me.Controls.Add(Me.cmbBarcodeType)
Me.Controls.Add(Me.btnExit)
Me.Controls.Add(Me.label1)
Me.Controls.Add(Me.cmbCamera)
Me.Controls.Add(Me.rtbFoundBarcodes)
Me.Controls.Add(Me.btnStop)
Me.Controls.Add(Me.btnStart)
Me.Controls.Add(Me.pictureBoxPreview)
Me.Controls.Add(Me.lblFoundBarcodes)
Me.Name = "MainForm"
Me.ShowIcon = false
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Barcode Scanner"
CType(Me.pictureBoxPreview,System.ComponentModel.ISupportInitialize).EndInit
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Private WithEvents btnUpdateCameraImageDimensions As Windows.Forms.Button
Private WithEvents cbStopOnFirstBarcode As Windows.Forms.CheckBox
Private WithEvents label4 As Windows.Forms.Label
Private WithEvents tbCameraHeight As Windows.Forms.TextBox
Private WithEvents tbCameraWidth As Windows.Forms.TextBox
Private WithEvents label2 As Windows.Forms.Label
Private WithEvents lblScanning As Windows.Forms.Label
Private WithEvents label3 As Windows.Forms.Label
Private WithEvents cmbBarcodeType As Windows.Forms.ComboBox
Private WithEvents btnExit As Windows.Forms.Button
Private WithEvents label1 As Windows.Forms.Label
Private WithEvents cmbCamera As Windows.Forms.ComboBox
Private WithEvents rtbFoundBarcodes As Windows.Forms.RichTextBox
Private WithEvents btnStop As Windows.Forms.Button
Private WithEvents btnStart As Windows.Forms.Button
Private WithEvents pictureBoxPreview As Windows.Forms.PictureBox
Private WithEvents lblFoundBarcodes As Windows.Forms.Label
Friend WithEvents Button1 As Windows.Forms.Button
End Class
MainForm.vb
Imports System.ComponentModel
Imports System.Drawing
Imports System.Media
Imports System.Reflection
Imports System.Text
Imports System.Threading
Imports System.Windows.Forms
Imports Bytescout.BarCodeReader
Imports TouchlessLib
Public Class MainForm
' Scan delay, ms.
Const SCAN_DELAY As Integer = 1500 ' scan barcodes every 1.5 sec
' Touchless SDK library manager (to use it you should have TouchlessLib.dll referenced and WebCamLib.dll in the build output directory)
Dim ReadOnly _touchlessLibManager As TouchlessMgr
' Background thread for barcode scanning
Dim ReadOnly _backgroundWorker As New BackgroundWorker
' Synchronization event
Dim ReadOnly _synchronizationEvent As New AutoResetEvent(False)
' Form constructor
Public Sub New()
InitializeComponent()
' Create Touchless library manager
_touchlessLibManager = New TouchlessMgr()
' Setup background worker
_backgroundWorker.WorkerSupportsCancellation = True
AddHandler _backgroundWorker.DoWork, AddressOf BackgroundWorker_DoWork
AddHandler _backgroundWorker.RunWorkerCompleted, AddressOf BackgroundWorker_RunWorkerCompleted
End Sub
' On form loading
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Fill devices combobox with available video cameras
For Each camera As Camera In _touchlessLibManager.Cameras
cmbCamera.Items.Add(camera)
Next
' Select the first available camera. See also cmbCamera_SelectedIndexChanged event handler.
If _touchlessLibManager.Cameras.Count > 0 Then
cmbCamera.SelectedItem = _touchlessLibManager.Cameras(0)
Else
MessageBox.Show("No video camera available. Please connect the camera.")
End If
' Populate barcode types combobox
PopulateBarcodeTypesCombobox()
' Select some default barcode type
cmbBarcodeType.SelectedItem = "QRCode"
End Sub
Private Sub PopulateBarcodeTypesCombobox()
cmbBarcodeType.Items.Clear()
For Each propertyInfo As PropertyInfo In GetType(BarcodeTypeSelector).GetProperties()
cmbBarcodeType.Items.Add(propertyInfo.Name)
Next
End Sub
' On camera selected
Private Sub cmbCamera_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbCamera.SelectedIndexChanged
If _touchlessLibManager.CurrentCamera IsNot Nothing Then
RemoveHandler _touchlessLibManager.CurrentCamera.OnImageCaptured, AddressOf CurrentCamera_OnImageCaptured
End If
If cmbCamera.SelectedIndex <> -1 Then
Dim camera As Camera = _touchlessLibManager.Cameras(cmbCamera.SelectedIndex)
If camera IsNot Nothing Then
' Set camera output image dimensions
camera.CaptureWidth = Integer.Parse(tbCameraWidth.Text)
camera.CaptureHeight = Integer.Parse(tbCameraHeight.Text)
AddHandler camera.OnImageCaptured, AddressOf CurrentCamera_OnImageCaptured
' Select the camera
_touchlessLibManager.CurrentCamera = camera
End If
End If
End Sub
Private Sub btnUpdateCameraImageDimensions_Click(sender As Object, e As EventArgs) Handles btnUpdateCameraImageDimensions.Click
If _touchlessLibManager.CurrentCamera IsNot Nothing Then
' Update camera's output image dimensions
_touchlessLibManager.CurrentCamera.CaptureWidth = Integer.Parse(tbCameraWidth.Text)
_touchlessLibManager.CurrentCamera.CaptureHeight = Integer.Parse(tbCameraHeight.Text)
End If
End Sub
Private Sub StartDecoding()
If cmbCamera.SelectedIndex = -1 Then
Return
End If
' Clear the output text box
rtbFoundBarcodes.Clear()
' Check if we have camera selected
If cmbCamera.SelectedIndex <> -1 Then
' Start the decoding in the background thread
Dim barcodeTypesToFind As BarcodeTypeSelector = GetBarcodeTypeFromCombobox()
_backgroundWorker.RunWorkerAsync(barcodeTypesToFind)
UpdateControls(True)
Else
MessageBox.Show("Please select the camera first!")
End If
End Sub
Private Sub StopDecoding()
_backgroundWorker.CancelAsync()
' Wait until BackgroundWorker finished
If _backgroundWorker.IsBusy Then
_synchronizationEvent.WaitOne()
End If
UpdateControls(False)
End Sub
Private Sub UpdateControls(started As Boolean)
If started Then
btnStart.Enabled = False
btnStop.Enabled = True
cmbBarcodeType.Enabled = False
cmbCamera.Enabled = False
tbCameraHeight.Enabled = False
tbCameraWidth.Enabled = False
btnUpdateCameraImageDimensions.Enabled = False
cbStopOnFirstBarcode.Enabled = False
lblScanning.Visible = True
lblScanning.Text = "Scanning..."
Else
btnStart.Enabled = True
btnStop.Enabled = False
cmbBarcodeType.Enabled = True
cmbCamera.Enabled = True
cbStopOnFirstBarcode.Enabled = True
tbCameraHeight.Enabled = True
tbCameraWidth.Enabled = True
btnUpdateCameraImageDimensions.Enabled = True
lblScanning.Visible = True
End If
End Sub
Private Sub CurrentCamera_OnImageCaptured(sender As Object, e As CameraEventArgs)
pictureBoxPreview.Image = e.Image
End Sub
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
StartDecoding()
End Sub
Private Sub btnStop_Click(sender As Object, e As EventArgs) Handles btnStop.Click
StopDecoding()
End Sub
' Background thread procedure used by BackgroundWorker
Private Sub BackgroundWorker_DoWork(sender As Object, e As DoWorkEventArgs)
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
Dim barcodeTypesToFind As BarcodeTypeSelector = CType(e.Argument, BarcodeTypeSelector)
' Create and setup barcode reader instance
Using reader As New Reader
reader.RegistrationName = "demo"
reader.RegistrationKey = "demo"
reader.BarcodeTypesToFind = barcodeTypesToFind
' Work while not canceled
While True
' Check cancellation
If worker.CancellationPending Then
e.Cancel = True
_synchronizationEvent.Set()
Return
End If
' Get image from camera by invoking method from UI thread
Dim bitmap As Bitmap = CType(Invoke(New GetCameraImageDelegate(AddressOf GetCameraImage)), Bitmap)
If bitmap Is Nothing Then
e.Result = nothing
return
End If
' -----------------------------------------------------------------------
' NOTE: We can read barcodes from specific page to increase performance .
' For sample please refer to "Decoding barcodes from PDF by pages" program.
' -----------------------------------------------------------------------
' Search the image for barcodes
Dim result As FoundBarcode() = reader.ReadFrom(bitmap)
' Update UI asynchronously
BeginInvoke(New Action(Of FoundBarcode())(AddressOf UpdateStatus), New Object() { result })
' Pause
Thread.Sleep(SCAN_DELAY)
End While
End Using
End Sub
Delegate Function GetCameraImageDelegate() As Bitmap
Private Function GetCameraImage() As Bitmap
If Not IsDisposed and Not Disposing and _touchlessLibManager.CurrentCamera IsNot Nothing Then
return _touchlessLibManager.CurrentCamera.GetCurrentImage()
End If
Return Nothing
End Function
' Update UI with found barcodes information
Private Sub UpdateStatus(foundBarcodes As FoundBarcode())
If foundBarcodes IsNot Nothing And foundBarcodes.Length > 0 Then
' Play sound if we found any barcode
SystemSounds.Beep.Play()
Dim stringBuilder As StringBuilder = New StringBuilder()
stringBuilder.AppendFormat("Time: {0:HH:mm:ss:tt}", DateTime.Now)
stringBuilder.AppendLine()
' Display found barcodes in the output text box
For Each barcode As FoundBarcode In foundBarcodes
stringBuilder.AppendFormat("Found barcode: {0} {1}", barcode.Type, barcode.Value)
stringBuilder.AppendLine()
Next
rtbFoundBarcodes.Text = stringBuilder.ToString()
' Update status text with number of found barcodes
lblFoundBarcodes.Text = String.Format("Found {0} barcodes:", foundBarcodes.Length)
End If
' Make "Scanning..." label flicker.
lblScanning.Visible = Not lblScanning.Visible
lblScanning.Refresh()
' Check if we need to stop on first barcode found
If cbStopOnFirstBarcode.Checked And foundBarcodes IsNot Nothing And foundBarcodes.Length > 0 Then
StopDecoding()
End If
End Sub
' Background thread is finished
Private Sub BackgroundWorker_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
' Update UI asynchronously
BeginInvoke(New Action(Of RunWorkerCompletedEventArgs)(AddressOf OnBackgroundWorkerFinished), New Object() {e})
End Sub
Private Sub OnBackgroundWorkerFinished(completedEventArgs As RunWorkerCompletedEventArgs)
If completedEventArgs.Cancelled Then
lblScanning.Text = "Stopped"
ElseIf completedEventArgs.Error IsNot Nothing Then
lblScanning.Text = "Error: " + completedEventArgs.Error.Message
Else
lblScanning.Text = "Done!"
End If
UpdateControls(False)
End Sub
Private Function GetBarcodeTypeFromCombobox() As BarcodeTypeSelector
Dim result As BarcodeTypeSelector = New BarcodeTypeSelector()
Dim selectedBarcodeTypeName As String = CType(cmbBarcodeType.SelectedItem, String)
Dim propertyInfo As PropertyInfo = GetType(BarcodeTypeSelector).GetProperty(selectedBarcodeTypeName)
propertyInfo.SetValue(result, True, Nothing)
Return result
End Function
Protected Overrides Sub OnClosing(e As CancelEventArgs)
StopDecoding()
_touchlessLibManager.Dispose()
MyBase.OnClosing(e)
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
DialogResult = DialogResult.OK
Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
if _touchlessLibManager.CurrentCamera IsNot Nothing
_touchlessLibManager.CurrentCamera.ShowPropertiesDialog(Handle)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
Program.vb
Imports System.Collections.Generic
Imports System.Windows.Forms
NotInheritable Class Program
Private Sub New()
End Sub
''' <summary>
''' The main entry point for the application.
''' </summary>
<MTAThread> _
Friend Shared Sub Main()
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
Dim dlg As New MainForm()
dlg.ShowDialog()
End Sub
End Class