【发布时间】:2009-09-11 14:27:49
【问题描述】:
我已准备好将我们应用程序的屏幕捕获功能外包出去,因为这不是我们的核心业务,而且我花了太多时间试图让我们的代码完成我需要的所有事情。我想是时候找专家了。我的要求按重要性降序排列如下。有没有人使用过满足大部分或所有这些要求的任何商业或免费库?
必须在 Windows XP 及更高版本中工作。 (但不是 Win95/98/Me。)
Visual C++ 2005 兼容,可以从我的代码触发屏幕截图。最好是静态库,但 DLL 或 COM 对象也可以。我不希望使用独立的 EXE,因为有些用户会尝试篡改我们的应用程序,而我认为拥有一个明显的单独的屏幕截图 EXE 让这太容易了。
必须能够截取多个监视器系统的完整屏幕截图。 (最好是 Windows 中“打印屏幕”键的方式,通过制作拼接在一起的显示位图,但如果我必须单独拍摄照片并自己组合它们,这是可以接受的。)
当远程桌面客户端(或任何 RDP 客户端或 VM)处于全屏模式时,必须能够正确捕获屏幕。 (当然,当 RDP 处于窗口模式时它也应该工作,但只要它不通过模拟可能被传输到远程操作系统而不是在本地处理的按键来操作,这应该不是问题。 )
当 Windows Media Player(或任何其他媒体播放器)处于全屏模式时,必须能够正确截屏。
必须能够在游戏(例如魔兽世界)处于全屏模式时正确截屏。
如果能够将几秒钟的用户活动捕获为视频,那就太好了。
【问题讨论】:
-
我不认为 stackoverflow 真的应该成为一个工作的董事会。
-
我不明白乍得的评论。我正在就针对特定任务的正确编程工具寻求建议——这对我来说似乎完全符合主题。
-
您找到解决方案了吗?我面临同样的问题。
-
不完全是。我最后只是用 C# 编写了一个控制台应用程序,它使用 System.Drawing.Graphics.CopyFromScreen 拍摄快照。不能解决一些更高数量的要求,但这是我能做的最好的。 (并且要求 1 和 2 不再相关。)
标签: windows visual-c++ screenshot