【问题标题】:DirectX to capture screen from Windows ServiceDirectX 从 Windows 服务捕获屏幕
【发布时间】:2014-05-30 15:31:58
【问题描述】:

我试图从 Windows 服务捕获桌面屏幕截图。正如大多数在线地方所建议的那样,由于 Windows 的会话隔离功能,很难捕获屏幕。由于好奇,我尝试了交互式服务标志、更改帐户类型、移动到安全位置、处理 Windows 站、桌面并将它们设置为 Thread 等,但没有任何效果,每次访问都被拒绝。从服务中获取屏幕截图对我来说是绝对必要的。

那么,另一个想法是为什么不从服务中轮询帧缓冲区或视频缓冲区以提供副本?这样我们就不需要担心任何这些会话墙、隔离、安全等问题。考虑到这一点,我觉得 DirectX 将是更好的选择,因为它与硬件有良好的关系。

但是,我已经在 DirectX 中完成了零行编程。如果 DirectX 可以帮助完成这项工作,有人可以帮我一些指示吗?如果其他情况,其他驱动程序 API 可以帮助获取视频缓冲内存。

【问题讨论】:

标签: windows visual-c++ service directx screenshot


【解决方案1】:

我也在尝试从 Windows 服务进行一些 DirectX 渲染,但看起来 Session 0 隔离阻止了对硬件的访问,我们无法进行基于硬件的 DirectX 渲染。检查thisthis

【讨论】:

  • 是的,你是对的。它不可能访问它们。我试着用 diretx 截图做一些试点。在用户桌面中它工作正常。当我转向 Windows 服务时,它开始返回 NULL 句柄。我在 msdn 中的帖子[social.msdn.microsoft.com/Forums/vstudio/en-US/… 得到了类似的答案。看来我们必须改变架构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多