Apprendre le Hack Index du Forum
Apprendre le Hack

 
Apprendre le Hack Index du ForumFAQRechercherS’enregistrerConnexion

:: capture de webcam et screenshot VB.net ::

 
Poster un nouveau sujet   Répondre au sujet    Apprendre le Hack Index du Forum -> A trié
Sujet précédent :: Sujet suivant  
Auteur Message
Inf3rnus
Administrateur

Hors ligne

Inscrit le: 22 Aoû 2011
Messages: 196

MessagePosté le: Dim 11 Déc - 10:52 (2011)    Sujet du message: capture de webcam et screenshot VB.net Répondre en citant

Voici un petit logiciel qui permet de capturer la webcam et d'en faire des screenshot.
Je n'ai pas eu l'occasion de tester car je n'ai pas de webcam.




Code source



  1. Public Class Form1  
  2.     Const WM_CAP As Short = &H400S  
  3.     Const WM_CAP_DRIVER_CONNECT As Integer = WM_CAP + 10  
  4.     Const WM_CAP_DRIVER_DISCONNECT As Integer = WM_CAP + 11  
  5.     Const WM_CAP_EDIT_COPY As Integer = WM_CAP + 30  
  6.     Const WM_CAP_SET_PREVIEW As Integer = WM_CAP + 50  
  7.     Const WM_CAP_SET_PREVIEWRATE As Integer = WM_CAP + 52  
  8.     Const WM_CAP_SET_SCALE As Integer = WM_CAP + 53  
  9.     Const WS_CHILD As Integer = &H40000000  
  10.     Const WS_VISIBLE As Integer = &H10000000  
  11.     Const SWP_NOMOVE As Short = &H2S  
  12.     Const SWP_NOSIZE As Short = 1  
  13.     Const SWP_NOZORDER As Short = &H4S  
  14.     Const HWND_BOTTOM As Short = 1  
  15.     Dim iDevice As Integer = 0  
  16.     Dim hHwnd As Integer  
  17.     Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Object) As Integer  
  18.     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  
  19.     Declare Function DestroyWindow Lib "user32" (ByVal hndw As Integer) As Boolean  
  20.     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  
  21.     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  
  22.     Private Sub LoadDeviceList()  
  23.   
  24.         Dim strName As String = Space(100)  
  25.         Dim strVer As String = Space(100)  
  26.         Dim bReturn As Boolean  
  27.         Dim x As Integer = 0  
  28.         Do  
  29.             bReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100)  
  30.             If bReturn Then lstdevice.Items.Add(strName.Trim)  
  31.             x += 1  
  32.         Loop Until bReturn = False  
  33.     End Sub  
  34.   
  35.     Private Sub OpenPreviewWindow()  
  36.         Dim iHeight As Integer = picCapture.Height  
  37.         Dim iWidth As Integer = picCapture.Width  
  38.         hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, 480, picCapture.Handle.ToInt32, 0)  
  39.         If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then  
  40.             SendMessage(hHwnd, WM_CAP_SET_SCALE, True, 0)  
  41.             SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0)  
  42.             SendMessage(hHwnd, WM_CAP_SET_PREVIEW, True, 0)  
  43.             SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, picCapture.Width, picCapture.Height, SWP_NOMOVE Or SWP_NOZORDER)  
  44.             Button3.Enabled = True  
  45.             Button2.Enabled = True  
  46.             Button1.Enabled = False  
  47.         Else  
  48.             DestroyWindow(hHwnd)  
  49.             Button3.Enabled = False  
  50.         End If  
  51.     End Sub  
  52.   
  53.     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click  
  54.         Dim data As IDataObject  
  55.         Dim bmap As Image  
  56.         SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)  
  57.         data = Clipboard.GetDataObject()  
  58.         If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then  
  59.             bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image)  
  60.             picCapture.Image = bmap  
  61.             ClosePreviewWindow()  
  62.             Button3.Enabled = False  
  63.             Button2.Enabled = False  
  64.             Button1.Enabled = True  
  65.             If sfdImage.ShowDialog = DialogResult.OK Then  
  66.                 bmap.Save(sfdImage.FileName, Imaging.ImageFormat.Bmp)  
  67.             End If  
  68.         End If  
  69.     End Sub  
  70.   
  71.     Private Sub ClosePreviewWindow()  
  72.         SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0)  
  73.         DestroyWindow(hHwnd)  
  74.     End Sub  
  75.   
  76.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
  77.         LoadDeviceList()  
  78.     End Sub  
  79.   
  80.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
  81.         OpenPreviewWindow()  
  82.         Button1.Enabled = False  
  83.         Button2.Enabled = True  
  84.     End Sub  
  85.   
  86.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
  87.         ClosePreviewWindow()  
  88.         Button1.Enabled = True  
  89.         Button2.Enabled = False  
  90.     End Sub  
  91. End Class  






_________________


Revenir en haut
Publicité






MessagePosté le: Dim 11 Déc - 10:52 (2011)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre le Hack Index du Forum -> A trié Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  




Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com