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

我已经准备好将应用程序的屏幕截图function外包出去,因为这不是我们的核心业务,而且我花了太多时间试图让我们的代码去做所有我需要的事情。 我认为是专家的时间。 我的要求,按重要性递减顺序如下。 有没有人有任何符合大部分或全部这些要求的商业或免费图书馆的经验?

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

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

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

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

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

  6. 当游戏(例如“魔兽世界”)处于全屏模式时,必须能正确捕捉屏幕。

  7. 很高兴能够捕获几秒钟的用户活动作为一个video。

我不知道一个图书馆会做你想要的。

如果我不得不编写你的需求,我可能会使用TightVNC服务器的源代码作为我的出发点。 我认为它有技术,做你的名单上的一切除了….

我不确定技术上有什么可以做一个人的远程桌面会话的屏幕截图。 想一想:使用相同的物理远程桌面服务器可能会出现多个远程桌面会话(csrss.exe进程)。 如果你坐在机器前面看着视频监视器,你什么都看不到。 那么你期望得到什么? VNC只是捕捉“真实”视频(非远程csrss.exe)发生的事情。

我不知道这是否真的有帮助,但最好的图像库可用

http://www.accusoft.com和

http://www.leadtools.com

两者都支持创建截图,但我不知道,如果嘿将正确捕获通过图形加速显示的电影播放器​​输出或从屏幕录制电影。

我们办公室的一些人使用Magick ++(一个ImageMagick库)来制作截图。 我不知道所有的规格,但你可以看看它,看看它是否符合你的要求。

希望这可以帮助。

问候,

Sebastiaan

如果我是你,我会调查WindowsClippings ,一个相当成熟和可扩展的应用程序用C ++编写,正是你所需要的。 它有一个API可以扩展到您的要求,并在18 $相当便宜