发个小程序希望有人需要操作摄像头_第1页
发个小程序希望有人需要操作摄像头_第2页
发个小程序希望有人需要操作摄像头_第3页
发个小程序希望有人需要操作摄像头_第4页
发个小程序希望有人需要操作摄像头_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace WindowsFormsApplication24 public partial class Form1 : Form public Form1() In

2、itializeComponent(); const short WM_CAP = 1024; const int WM_CAP_DRIVER_CONNECT = WM_CAP + 10; const int WM_CAP_DRIVER_DISCONNECT = WM_CAP + 11; const int WM_CAP_EDIT_COPY = WM_CAP + 30; const int WM_CAP_SET_PREVIEW = WM_CAP + 50; const int WM_CAP_SET_PREVIEWRATE = WM_CAP + 52; const int WM_CAP_SET_

3、SCALE = WM_CAP + 53; const int WS_CHILD = 1073741824; const int WS_VISIBLE = 268435456; const short SWP_NOMOVE = 2; const short SWP_NOSIZE = 1; const short SWP_NOZORDER = 4; const short HWND_BOTTOM = 1; int iDevice = 0; int hHwnd; System.Runtime.InteropServices.DllImport("user32", EntryPoi

4、nt = "SendMessageA") static extern int SendMessage(int hwnd, int wMsg, int wParam, MarshalAs(UnmanagedType.AsAny) object lParam); System.Runtime.InteropServices.DllImport("user32", EntryPoint = "SetWindowPos") static extern int SetWindowPos(int hwnd, int hWndInsertAfter

5、, int x, int y, int cx, int cy, int wFlags); System.Runtime.InteropServices.DllImport("user32") static extern bool DestroyWindow(int hndw); System.Runtime.InteropServices.DllImport("avicap32.dll") static extern int capCreateCaptureWindowA(string lpszWindowName, int dwStyle, int x

6、, int y, int nWidth, short nHeight, int hWndParent, int nID); System.Runtime.InteropServices.DllImport("avicap32.dll") static extern bool capGetDriverDescriptionA(short wDriver, string lpszName, int cbName, string lpszVer, int cbVer); private void OpenPreviewWindow() int iHeight = 320; int

7、 iWidth = 200; / / Open Preview window in picturebox / hHwnd = capCreateCaptureWindowA(iDevice.ToString(), (WS_VISIBLE | WS_CHILD), 0, 0, 640, 480, picCapture.Handle.ToInt32(), 0); / / Connect to device / if (SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) = 1) / / Set the preview scale / Send

8、Message(hHwnd, WM_CAP_SET_SCALE, 1, 0); / / Set the preview rate in milliseconds / SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0); / / Start previewing the image from the camera / SendMessage(hHwnd, WM_CAP_SET_PREVIEW, 1, 0); / / Resize window to fit in picturebox / SetWindowPos(hHwnd, HWND_BOTTO

9、M, 0, 0, iWidth, iHeight, (SWP_NOMOVE | SWP_NOZORDER); else / / Error connecting to device close window / DestroyWindow(hHwnd); private void ClosePreviewWindow() / / Disconnect from device / SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0); / / close window / DestroyWindow(hHwnd); private vo

10、id button1_Click(object sender, EventArgs e) iDevice = int.Parse(device_number_textBox.Text); OpenPreviewWindow(); C# code using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;u

11、sing System.Runtime.InteropServices;namespace WindowsFormsApplication24 public partial class Form1 : Form public Form1() InitializeComponent(); const short WM_CAP = 1024; const int WM_CAP_DRIVER_CONNECT = WM_CAP + 10; const int WM_CAP_DRIVER_DISCONNECT = WM_CAP + 11; const int WM_CAP_EDIT_COPY = WM_

12、CAP + 30; const int WM_CAP_SET_PREVIEW = WM_CAP + 50; const int WM_CAP_SET_PREVIEWRATE = WM_CAP + 52; const int WM_CAP_SET_SCALE = WM_CAP + 53; const int WS_CHILD = 1073741824; const int WS_VISIBLE = 268435456; const short SWP_NOMOVE = 2; const short SWP_NOSIZE = 1; const short SWP_NOZORDER = 4; con

13、st short HWND_BOTTOM = 1; int iDevice = 0; int hHwnd; System.Runtime.InteropServices.DllImport("user32", EntryPoint = "SendMessageA") static extern int SendMessage(int hwnd, int wMsg, int wParam, MarshalAs(UnmanagedType.AsAny) object lParam); System.Runtime.InteropServices.DllImp

14、ort("user32", EntryPoint = "SetWindowPos") static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); System.Runtime.InteropServices.DllImport("user32") static extern bool DestroyWindow(int hndw); System.Runtime.InteropServi

15、ces.DllImport("avicap32.dll") static extern int capCreateCaptureWindowA(string lpszWindowName, int dwStyle, int x, int y, int nWidth, short nHeight, int hWndParent, int nID); System.Runtime.InteropServices.DllImport("avicap32.dll") static extern bool capGetDriverDescriptionA(shor

16、t wDriver, string lpszName, int cbName, string lpszVer, int cbVer); private void OpenPreviewWindow() int iHeight = 320; int iWidth = 200; / / Open Preview window in picturebox / hHwnd = capCreateCaptureWindowA(iDevice.ToString(), (WS_VISIBLE | WS_CHILD), 0, 0, 640, 480, picCapture.Handle.ToInt32(),

17、0); / / Connect to device / if (SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) = 1) / / Set the preview scale / SendMessage(hHwnd, WM_CAP_SET_SCALE, 1, 0); / / Set the preview rate in milliseconds / SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0); / / Start previewing the image from the cam

18、era / SendMessage(hHwnd, WM_CAP_SET_PREVIEW, 1, 0); / / Resize window to fit in picturebox / SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, iWidth, iHeight, (SWP_NOMOVE | SWP_NOZORDER); else / / Error connecting to device close window / DestroyWindow(hHwnd); private void ClosePreviewWindow() / / Disconnect from device / Send

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论