windows - 哪些 Windows (C++) 屏幕捕获库符合我的要求?

标签 windows visual-c++ screenshot

我准备外包我们应用程序的屏幕捕获功能,因为这不是我们的核心业务,而且我花了太多时间试图让我们的代码完成我需要的所有事情。我想是时候请专家了。以下是我的要求,按重要性降序排列。有没有人有使用满足大部分或所有这些要求的任何商业或免费图书馆的经验?

  1. 必须在 Windows XP 及更高版本中工作。 (但不是 Win95/98/Me。)

  2. Visual C++ 2005 兼容,可以从我的代码中触发屏幕截图。最好是静态库,但 DLL 或 COM 对象也可以。我不希望使用独立的 EXE,因为有些用户会试图篡改我们的应用程序,而且我认为拥有一个明显的单独屏幕截图 EXE 会使这变得太容易了。

  3. 必须能够截取多个监控系统的完整屏幕截图。 (最好是“打印屏幕”键在 Windows 中的作用,通过将显示器拼接在一起的位图,但如果我必须单独拍摄照片并自己组合它们,那也是可以接受的。)

  4. 必须能够在远程桌面客户端(或任何 RDP 客户端或虚拟机)处于全屏模式时正确捕获屏幕。 (当然,当 RDP 处于窗口模式时它也应该工作,但只要它不是通过模拟可能传输到远程操作系统而不是在本地处理的按键来操作,那应该不是问题。 )

  5. 必须能够在 Windows Media Player(或任何其他媒体播放器)处于全屏模式时正确捕获屏幕。

  6. 必须能够在游戏(例如魔兽世界)处于全屏模式时正确捕获屏幕。

  7. 如果能够将几秒钟的用户事件捕捉为视频,那就太好了。

最佳答案

我不知道有哪个图书馆可以满足您的需求。

如果我必须对您的要求进行编码,我可能会使用 TightVNC 服务器的源代码作为我的起点。我认为它的技术可以完成您 list 上的所有事情,除了......

我不确定在技术上是否有任何东西可以对某人的远程桌面 session 进行屏幕截图。想一想:使用同一个物理远程桌面服务器可能会发生多个远程桌面 session (csrss.exe 进程)。如果您坐在机器前看着视频监视器,您根本看不到任何事情发生。那么您希望捕获什么。 VNC 只会捕获“真实”视频(非远程 csrss.exe)发生的情况。

关于windows - 哪些 Windows (C++) 屏幕捕获库符合我的要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1411228/

相关文章:

windows - 在 Windows 中是否有从命令提示符刷新环境变量的命令?

visual-c++ - VC++ Express Edition 中缺少 afxwin.h 文件

visual-c++ - 如何在 MFC 对话框中添加关闭按钮

c++ - 屏幕截图仅返回黑色图像

windows - 如何在 Windows 10 的命令行中运行路径中包含空格的可执行文件?

windows - 如何在Windows上配置IBM Kubernetes CLI

android - 为什么添加 list CAPTURE_VIDEO_OUTPUT 或 CAPTURE_SECURE_VIDEO_OUTPUT 时会出现错误?

c# - 通过屏幕截图分析检测游戏破解 C#

windows - 在 VBS 中获取 Common Documents 文件夹

windows - 如何在 x64 VC++ 编译器上禁用 FPO 优化