BitBlt 截图问题
先上代码
问题描述,此段代码是截取指定DirextX窗口图片,自从更新了Win10 周年更新后无法工作,截取出来是黑的,之前都是好好的
但是如果把handle设置为GetDesktopWindow() ,可以截图 包括DirextX窗口内容,如何修改才能截取指定DirextX窗口图片
IntPtr hdcSrc = IntPtr.Zero;
hdcSrc = User32.GetWindowDC(handle);
// create a device context we can copy to
IntPtr hdcDest = GDI32.CreateCompatibleDC(hdcSrc);
// create a bitmap we can copy it to,
// using GetDeviceCaps to get the width/height
IntPtr hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc, width, height);
// select the bitmap object
IntPtr hOld = GDI32.SelectObject(hdcDest, hBitmap);
// bitblt over
GDI32.BitBlt(hdcDest, 0, 0, width, height, hdcSrc, x, y, GDI32.SRCCOPY);
// restore selection
GDI32.SelectObject(hdcDest, hOld);
// clean up
GDI32.DeleteDC(hdcDest);
User32.ReleaseDC(handle, hdcSrc);
// get a .NET image object for it
Image img = Image.FromHbitmap(hBitmap);
// free up the Bitmap object
GDI32.DeleteObject(hBitmap);
((Bitmap)img).Save("1.bmp");
return (Bitmap)img;
问题描述,此段代码是截取指定DirextX窗口图片,自从更新了Win10 周年更新后无法工作,截取出来是黑的,之前都是好好的
但是如果把handle设置为GetDesktopWindow() ,可以截图 包括DirextX窗口内容,如何修改才能截取指定DirextX窗口图片
...全文
相关推荐
BitBlt的汇编版源码-易语言
同时,这也是一个很好的实例,展示了如何在高级语言中嵌入汇编代码以解决特定性能瓶颈问题。
解决C# 截取当前程序窗口指定位置截图的实现方法
由于问题涉及图形处理,因此主要调用的是"GDI32.DLL"中的函数。在本例中,使用的API函数是"BitBlt",这是一个广泛应用于图像处理领域的函数。
截图工具
《截图工具:深入解析与应用》截图工具是我们在日常工作中不可或缺的小帮手,无论是为了记录屏幕上的信息、分享操作步骤还是进行问题反馈,都离不开它的身影。
windows api 编写的屏幕截图软件__附带源码__很好用(有一bug望高手解释)
**BitBlt()**:这是一个非常重要的函数,用于将源DC的一部分拷贝到目标DC上。在屏幕截图中,我们用它来复制桌面窗口的内容到我们创建的位图上。6.
C# 类似QQ抓取屏幕截图代码 可用VS打开
**BitBlt函数**:在获得了设备上下文后,可以使用`BitBlt`函数进行位图的复制。这个函数允许我们将屏幕上的像素数据复制到内存中的位图,从而实现截图。3.


