Tag: screen capture

使用directshow在桌面录制上翻转光标图标

使用Directshow.NET我开发了一个应用程序,它将记录桌面屏幕,获取我们需要绘制鼠标指针的鼠标指针。 所以我在BufferCB添加了SampleGrabber BufferCB我写了下面的代码: public const Int32 CURSOR_SHOWING = 0x00000001; [StructLayout(LayoutKind.Sequential)] public struct ICONINFO { public bool fIcon; public Int32 xHotspot; public Int32 yHotspot; public IntPtr hbmMask; public IntPtr hbmColor; } [StructLayout(LayoutKind.Sequential)] public struct POINT { public Int32 x; public Int32 y; } [StructLayout(LayoutKind.Sequential)] public struct CURSORINFO { public Int32 cbSize; public Int32 flags; public IntPtr […]

Expression Encoder 3 SDK屏幕截图C#样本?

我正在使用VSTS 2008 + .Net 3.5 + C#+ Microsoft Expression 3 SDK。 我想捕获屏幕并输出一个wmv文件。 我努力但却找不到谷歌的C#样本。 有参考样品吗?

如何在C#中捕获Windowsapp store应用的窗口内容

我有一些代码来捕获Windows桌面应用程序内容并保存到.NET中的Bitmap对象。 它使用User32.dll和Gdi32.dll(BitBlt)并且工作得很好。 但是,当我为代码提供一个包含Windowsapp store应用程序的窗口的句柄时,代码会生成全黑位图。 我不确定这是安全function还是什么。 我不能使用ScreenCapture api作为窗口的内容,在resize后,几乎总是比屏幕更高/更大。 对于Windowsapp store应用,有没有人有幸获取窗口内容,即使它们比屏幕大? 编辑:就像一个笔记我试图捕捉不同的程序的窗口,而不是我自己的程序。 我的程序可以假定为.NET 4.6.1 / C#中的Windows控制台应用程序 此外,我知道在Windows API中必须以某种方式实现这一点,因为Aero Peekfunction,如果您将鼠标hover在正在运行的程序图标上的任务栏上,则会显示窗口的完整高度,包括屏幕外组件。 (见右边的高窗,设置为比我的显示器高出6000px)

用c#捕捉游戏画面的最快方法(每秒超过20张图像)

如何快速制作整个游戏画面的大屏幕? 像每秒20-30的东西?(我想将它们转换为video) [[1]]我尝试过WMEncoder。结果是WMEncoder只能使用一组预先配置的编解码器以video格式(wma)捕获屏幕和屏幕区域。 (29 fps最佳编码结果).WMEncoder无法制作截图。 [[2]]我试过DirectX: Surface s = device.CreateOffscreenPlainSurface( Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8, Pool.SystemMemory); device.GetFrontBufferData(0, s); SurfaceLoader.Save(“c:\\Screenshot”+i.ToString()+”.bmp”, ImageFileFormat.Bmp, s); 这就像gdi ..very slow ….它只适用于DirectX 1.0,因为在DirectX 2.0中不存在SurfaceLoader 我在一些post中读到的另一种方式是使用: s = device.GetBackBuffer(0, 0, Microsoft.DirectX.Direct3D.BackBufferType.Mono); ,但这只是截图到了当前的窗口。 [[3]]我曾尝试使用Taksi(在sourceforge.net上)…但我不知道如何在c#中使用它并让它工作。 请帮帮我…