Автоматический захват веб-камеры после неудачного входа в систему три раза
Я делаю приложение для своего школьного проекта, которое заключается в том, что когда пользователь подключает usb-накопитель, login for выйдет с просьбой сначала войти в систему, но если пользователь не смог войти в систему в течение трех раз, веб-камера автоматически захватит. Проблема здесь в том, как я могу заставить веб-камеру автоматически захватывать после неудачного входа в систему в течение трех раз?
Вот кодировка для входа в систему
Public Class Login Private Sub LoginButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoginButton.Click 'Check if username or password is empty If PasswordTextBox.Text = "" Or UsernameTextBox.Text = "" Then MessageBox.Show("Please fill-up all fields!", "Authentication Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Clear all fields PasswordTextBox.Text = "" UsernameTextBox.Text = "" 'Focus on Username field UsernameTextBox.Focus() Else ' Connect to DB Dim conn As New System.Data.OleDb.OleDbConnection() conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\PutLock.mdb;Persist Security Info=True;Jet OLEDB:Database Password=password" Try 'Open Database Connection conn.Open() Dim sql As String = "SELECT * FROM PutLockSignUp WHERE Username='" & UsernameTextBox.Text & "' AND Password = '" & PasswordTextBox.Text & "'" Dim cmd As OleDbCommand = New OleDbCommand(sql, conn) Dim sqlRead As OleDbDataReader = cmd.ExecuteReader() If sqlRead.Read() Then UsernameTextBox.Clear() PasswordTextBox.Clear() MainPage.Show() Me.Hide() Else ' If user enter wrong username or password MessageBox.Show("Sorry, username or password not found!", "Authentication Failure", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Clear all fields PasswordTextBox.Text = "" UsernameTextBox.Text = "" 'Focus on Username field UsernameTextBox.Focus() End If Catch ex As Exception MessageBox.Show("Failed to connect to Database", "Database Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End If End Sub Private Sub ExitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitButton.Click End End Sub End Class Coding for webcam which i found from google Public Class Form1 Const WM_CAP As Short = &H400S Const WM_CAP_DRIVER_CONNECT As Integer = WM_CAP + 10 Const WM_CAP_DRIVER_DISCONNECT As Integer = WM_CAP + 11 Const WM_CAP_EDIT_COPY As Integer = WM_CAP + 30 Const WM_CAP_SET_PREVIEW As Integer = WM_CAP + 50 Const WM_CAP_SET_PREVIEWRATE As Integer = WM_CAP + 52 Const WM_CAP_SET_SCALE As Integer = WM_CAP + 53 Const WS_CHILD As Integer = &H40000000 Const WS_VISIBLE As Integer = &H10000000 Const SWP_NOMOVE As Short = &H2S Const SWP_NOSIZE As Short = 1 Const SWP_NOZORDER As Short = &H4S Const HWND_BOTTOM As Short = 1 Dim iDevice As Integer = 0 Dim hHwnd As Integer Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByRef RECT As IntPtr) As IntPtr Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer Declare Function DestroyWindow Lib "user32" (ByVal hndw As Integer) As Boolean Declare Function capCreateCaptureWindowA Lib "avicap32.dll" (ByVal lpszWindowName As String, ByVal dwStyle As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Short, ByVal hWndParent As Integer, ByVal nID As Integer) As Integer Declare Function capGetDriverDescriptionA Lib "avicap32.dll" (ByVal wDriver As Short, ByVal lpszName As String, ByVal cbName As Integer, ByVal lpszVer As String, ByVal cbVer As Integer) As Boolean Private Sub LoadDeviceList() Dim strName As String = Space(100) Dim strVer As String = Space(100) Dim bReturn As Boolean Dim x As Integer = 0 Do bReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100) If bReturn Then lstDevices.Items.Add(strName.Trim) x += 1 Loop Until bReturn = False End Sub Private Sub OpenPreviewWindow() Dim iHeight As Integer = picCapture.Height Dim iWidth As Integer = picCapture.Width hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, 480, picCapture.Handle.ToInt32, 0) If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then SendMessage(hHwnd, WM_CAP_SET_SCALE, True, 0) SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0) SendMessage(hHwnd, WM_CAP_SET_PREVIEW, True, 0) SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, picCapture.Width, picCapture.Height, SWP_NOMOVE Or SWP_NOZORDER) btnSave.Enabled = True btnStop.Enabled = True btnStart.Enabled = False Else DestroyWindow(hHwnd) btnSave.Enabled = False End If End Sub Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click Dim data As IDataObject Dim bmap As Image SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0) data = Clipboard.GetDataObject() If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image) picCapture.Image = bmap ClosePreviewWindow() btnSave.Enabled = False btnStop.Enabled = False btnStart.Enabled = True If sfdImage.ShowDialog = DialogResult.OK Then bmap.Save(sfdImage.FileName, Imaging.ImageFormat.Bmp) End If End If End Sub Private Sub ClosePreviewWindow() SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0) DestroyWindow(hHwnd) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load LoadDeviceList() End Sub Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click OpenPreviewWindow() btnStart.Enabled = False btnStop.Enabled = True End Sub Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click ClosePreviewWindow() btnStart.Enabled = True btnStop.Enabled = False End Sub End Class Thanks in advance ^^ What I have tried: I have tried doing research on how to use timer because ive read somewhere that one of the solution is by using timer but i dont know how to use it to solve my prob.