如何在Mac OS X中以编程方式截取桌面区域的截图?
答案 0 :(得分:14)
我见过的两个有趣的选项,但尚未专业使用,是screencapture实用程序和MacFuse演示。
根据手册页,screencapture实用程序自10.2以来就已存在,并且可以使用NSTask链接到Cocoa应用程序。
MacFuse演示通过每次打开文件夹时创建新的屏幕截图或类似的东西来工作。您可以在需要时编写快速脚本来访问图像,而无需让脚本实际在该计算机上运行。
但严重的是,Apple还有一些名为“Son of Grab”的示例代码,它使用了新的CGWindow API,非常棒。
答案 1 :(得分:10)
实现此目的的一种方法是将NSTask与'screencapture'命令行命令结合使用。
例如:
NSTask *theProcess;
theProcess = [[NSTask alloc] init];
[theProcess setLaunchPath:@"/usr/sbin/screencapture"];
// use arguments to set save location
[theProcess setArguments:@"blahblah"];
[theProcess launch];
您可以打开文件,无论您将其保存在哪里,进行处理,然后根据需要将其删除。显然是权宜之计,但它会奏效。
答案 2 :(得分:8)
如果您对Leopard兼容性很好,那么有一个非常强大的新CGWindow API可以让您抓取任何范围的窗口图层的屏幕截图,窗口镜头或复合材料。
答案 3 :(得分:3)
Qt在examples \ desktop \ screenshot中包含一个示例屏幕截图应用。 Qt适用于各种平台,包括MacOSX。
答案 4 :(得分:1)
如果您尝试使用C ++或python完成此操作,以下内容可能会有所帮助。此外,如果您希望程序化方法可以跨平台移植,这将更有帮助。 (Windows,Linux,Mac osx,甚至更远)
之前的回应提及QT。
与QT允许捕获和保存屏幕截图的方式相同,另一个“竞争”框架,即wxWidgets也是如此。 wxWidgets是一个C ++框架,但它也通过wxPython提供python绑定。
要了解详情,请使用以下链接,在图书中搜索 wxScreenDC ,然后从与搜索匹配的网页列表中选择“Page 139”:
http://books.google.com/books?id=CyMsvtgnq0QC&vq="accessing+the+screen+with+wxScreendc"
答案 5 :(得分:-1)
如果你考虑使用REALbasic,这对于RB和MBS插件来说非常容易。我刚刚编写了一个使用RB和MBS插件进行定时屏幕截图的应用程序。您可以在此处阅读:http://tektalkin.blogspot.com/2008/08/screenaudit-for-mac-osx.html