【发布时间】:2014-05-30 15:31:58
【问题描述】:
我试图从 Windows 服务捕获桌面屏幕截图。正如大多数在线地方所建议的那样,由于 Windows 的会话隔离功能,很难捕获屏幕。由于好奇,我尝试了交互式服务标志、更改帐户类型、移动到安全位置、处理 Windows 站、桌面并将它们设置为 Thread 等,但没有任何效果,每次访问都被拒绝。从服务中获取屏幕截图对我来说是绝对必要的。
那么,另一个想法是为什么不从服务中轮询帧缓冲区或视频缓冲区以提供副本?这样我们就不需要担心任何这些会话墙、隔离、安全等问题。考虑到这一点,我觉得 DirectX 将是更好的选择,因为它与硬件有良好的关系。
但是,我已经在 DirectX 中完成了零行编程。如果 DirectX 可以帮助完成这项工作,有人可以帮我一些指示吗?如果其他情况,其他驱动程序 API 可以帮助获取视频缓冲内存。
【问题讨论】:
-
不需要 DirectX。看看我们是如何解决的:stackoverflow.com/a/45095509/125406
标签: windows visual-c++ service directx screenshot