如何在Mac OS X中以编程方式截取桌面区域的屏幕截图?
我看到了两个有趣的选项,但尚未在专业领域中使用,它们分别是屏幕截图实用程序和MacFuse演示。
据man页面显示,自10.2版本以来,屏幕截图实用程序一直存在,并且可以通过NSTask与Cocoa应用程序相连。
MacFuse演示是通过每次打开文件夹创建一个新的屏幕截图之类的方式工作的。其想法是,您可以编写一个快速脚本,在需要时访问该图像,而无需在该计算机上实际运行该脚本。
但说真的,苹果公司还有一些其他名为“Son of Grab”的示例代码,它使用全新的CGWindow API,非常棒。
可以采用 NSTask 结合 'screencapture' 命令来实现此目的。
例如:
NSTask *theProcess;
theProcess = [[NSTask alloc] init];
[theProcess setLaunchPath:@"/usr/sbin/screencapture"];
// use arguments to set save location
[theProcess setArguments:@"blahblah"];
[theProcess launch];
然后,您可以打开文件,无论您将其保存在何处,对其进行处理,然后根据需要删除它。显然,这只是一种权宜之计,但它是可行的。
如果您的系统可以兼容Leopard,那么有一个非常强大的新CGWindow API可供使用,可以让您截取屏幕截图、窗口截图或窗口层组合。
Qt在examples\desktop\screenshot中包含一个示例截图应用程序。Qt可运行于多个平台,包括MacOSX。
http://books.google.com/books?id=CyMsvtgnq0QC&vq="accessing+the+screen+with+wxScreendc"