4,447
社区成员
发帖
与我相关
我的任务
分享
[DllImport("avicap32.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern int capCreateCaptureWindowA([MarshalAs(UnmanagedType.VBByRefStr)] ref string lpszWindowName, int dwStyle, int x, int y, int nWidth, short nHeight, int hWndParent, int nID);
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool DestroyWindow(int hndw);
[DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern int SendMessage(int hwnd, int wMsg, int wParam, [MarshalAs(UnmanagedType.AsAny)] object lParam);
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);
//open method
hHwnd = ControlCamera.capCreateCaptureWindowA(ref refDevice, 1342177280, 0, 0, 640, 360, this.videoWindow.Handle.ToInt32(), 0);
if (ControlCamera.SendMessage(hHwnd, 0x40a, intDevice, 0) > 0)
{
ControlCamera.SendMessage(this.hHwnd, 0x435, -1, 0);
ControlCamera.SendMessage(this.hHwnd, 0x434, 0x42, 0);
ControlCamera.SendMessage(this.hHwnd, 0x432, -1, 0);
ControlCamera.SetWindowPos(this.hHwnd, 1, 0, 0, intWidth, intHeight, 6);
isOpen = true;
}
else
{
ControlCamera.DestroyWindow(this.hHwnd);
}
//another method
IDataObject obj_camera = Clipboard.GetDataObject();
Image image_camera = (Image)obj_camera.GetData(typeof(Bitmap));
image_camera.Save(str, ImageFormat.Bmp);