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

时间:2009-09-11 14:27:49

标签: windows visual-c++ screenshot

我准备外包我们应用程序的屏幕捕获功能,因为它不是我们的核心业务,我花了太多时间试图让我们的代码完成我需要的所有事情。我想是专家的时间。我的要求按重要性递减顺序排在下面。有没有人有任何符合大部分或全部这些要求的商业或免费图书馆的经验?

  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. 很高兴能够将几秒钟的用户活动捕获为视频。

4 个答案:

答案 0 :(得分:1)

我不知道哪个库会做你想要的。

如果我必须编写您的要求,我可能会使用TightVNC服务器的源代码作为我的起点。我认为它有技术可以在你的清单上做所有事情除外....

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

答案 1 :(得分:1)

我不知道这是否真的有帮助,但可以从

获得最好的成像库

www.accusoft.com和

www.leadtools.com

两者都支持创建屏幕截图,但我不知道,他们是否会正确捕捉通过图形加速显示的电影播放器​​输出或从屏幕录制电影。

答案 2 :(得分:0)

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

希望这有帮助。

此致

Sebastiaan

答案 3 :(得分:0)

如果我是你,我会调查WindowsClippings,这是一个用C ++编写的非常成熟且可扩展的应用程序,可以完全满足您的需求。它有一个API,你可以扩展到你的要求,并在18美元

非常便宜