【问题标题】:Reading framebuffer memory读取帧缓冲内存
【发布时间】:2018-07-29 02:28:49
【问题描述】:

是否可以在带有 C win32 程序的 Windows 操作系统中直接读取帧缓冲区? 作为帧缓冲区,我的意思是物理内存(系统 RAM 或视频 RAM?),其中包含通过 DVI 或 HDMI 或 DP 传输的监视器上的图像。 我不想只读取活动窗口的像素,而是整个屏幕,而不是使用 STAMP 键。 我希望解释得很好,我从来没有找到这个问题的完整答案。

最后一个细节:这个帧缓冲区是在系统 RAM 还是视频 RAM 中?

【问题讨论】:

  • 一般来说,它比这要复杂一些。看看 DirectX 或 Open GL。

标签: c operating-system hardware


【解决方案1】:

您可以很容易地抓取全屏屏幕截图,例如使用How can I take a screenshot in a windows application? 的技术(那里的所有答案似乎都是纯C)。

但是直接访问帧缓冲区通常会违反内存访问保护,因此您通常只能通过 GDI 或 DirectX 等 win32 API 访问它。 (当然,除非您编写自己的设备驱动程序...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-13
    • 2015-07-02
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多