我用C# 做了一个摄像头拍照 XP系统好使 WIN7就一次好使一次又不好使没准 好使的时候就直接连上了 显示器能看到 摄像头照到的地方 不好使的时候 就是弹出一个框 捕捉视频源 无论我怎么选择 都不好使 视频的地方 一片黑色的。 怎么解决给点提示 求帮忙啊
解决方案 »
- 入门问题:我在一个imgBtn里对一个TextBox.text赋值,在界面上看不到TextBox刷新。何故?
- 如何改变SharpDevelop中的项目dll默认输出路径
- 操作WORD中的DOCUMENT的Activate出现“被呼叫方拒绝接收呼叫”的错误
- 求正则表达式
- 关于在WebForm中查找控件的问题,各位大虾们帮忙看看。
- C# 外部别名(extern alias)一个实例。
- winform DataGridView实现复选框区域选中,求指导,在线等!!!
- 问个问题
- 大家讨论:用C#或Vb.net做网页时,当执行某“删除”操作给出提示的最优化处理方法?
- C#程序的布署
- Object reference not set to an instance of an object.
- UdpClient用在windows service中
using System.Runtime.InteropServices;namespace shoes
{
public class ClassVedioCapture
{
private int hCaptureM;
private bool isUnLoad = false; public ClassVedioCapture()
{
} ~ClassVedioCapture()
{
if (!isUnLoad)
{
this.UnLoad();
}
} [DllImport("avicap32.dll")]
private static extern int capCreateCaptureWindow(string strWindowName, int dwStyle, int x, int y, int width, int height, int hwdParent, int nID);
[DllImport("user32.dll")]
private static extern int SendMessage(int hwnd, int wMsg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern int SendMessage(int hwnd, int wMsg, int wParam, string lParam);
[DllImport("Kernel32.dll")]
private static extern bool CloseHandle(int hObject); public bool Initialize(System.Windows.Forms.Control aContainer, int intWidth, int intHeight)
{ hCaptureM = capCreateCaptureWindow("", 0x40000000 | 0x10000000, 0, 0, intWidth, intHeight, aContainer.Handle.ToInt32(), 1);
if (hCaptureM == 0) return false; int ret = SendMessage(hCaptureM, 1034, 0, 0);
if (ret == 0)
{
CloseHandle(hCaptureM);
return false;
}
//WM_CAP_SET_PREVIEW
ret = SendMessage(hCaptureM, 1074, 1, 0);
if (ret == 0)
{
this.UnLoad();
return false;
}
//WM_CAP_SET_SCALE
ret = SendMessage(hCaptureM, 1077, 1, 0);
if (ret == 0)
{
this.UnLoad();
return false;
}
//WM_CAP_SET_PREVIEWRATE
ret = SendMessage(hCaptureM, 1076, 66, 0);
if (ret == 0)
{
this.UnLoad();
return false;
} return true; } public void SingleFrameBegin()
{
//
int ret = SendMessage(hCaptureM, 1094, 0, 0);
}
public void SingleFrameEnd()
{
//
int ret = SendMessage(hCaptureM, 1095, 0, 0);
} public void SingleFrameMode()
{
//WM_CAP_GRAB_FRAME
int ret = SendMessage(hCaptureM, 1084, 0, 0);
//WM_CAP_SET_PREVIEW
//int ret = SendMessage( hCaptureM, 1074 , 0, 0 );
//WM_CAP_SINGLE_FRAME
//ret = SendMessage( hCaptureM, 1096 , 0, 0 );
}
public void PreviewMode()
{
int ret = SendMessage(hCaptureM, 1074, 1, 0);
} public void UnLoad()
{
int ret = SendMessage(hCaptureM, 1035, 0, 0);
CloseHandle(this.hCaptureM);
isUnLoad = true;
} public void CopyToClipBorad()
{
int ret = SendMessage(hCaptureM, 1054, 0, 0);
} public void ShowFormatDialog()
{
int ret = SendMessage(hCaptureM, 1065, 0, 0);
}
public void SaveToDIB(string fileName)
{
int ret = SendMessage(hCaptureM, 1049, 0, fileName);
} public void ShowDisplayDialog()
{
int ret = SendMessage(hCaptureM, 1067, 0, 0);
} public System.Drawing.Image getCaptureImage()
{
System.Windows.Forms.IDataObject iData = System.Windows.Forms.Clipboard.GetDataObject();
System.Drawing.Image retImage = null;
if (iData != null)
{
if (iData.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap))
{
retImage = (System.Drawing.Image)iData.GetData(System.Windows.Forms.DataFormats.Bitmap);
}
else if (iData.GetDataPresent(System.Windows.Forms.DataFormats.Dib))
{
retImage = (System.Drawing.Image)iData.GetData(System.Windows.Forms.DataFormats.Dib);
}
}
return retImage;
} }
}
这是我程序 有问题吗
直接运行EXE