如何在OS X上使用Cocoa或Carbon获取单个窗口的屏幕抓图?

Mic*_*bbé 0 macos cocoa screenshot macos-carbon

我需要能够识别用户屏幕上的单个窗口并对其进行屏幕捕获.屏幕数据将存储在内存中,而不是写入磁盘.

这已经通过命令行工具/ usr/sbin/screencapture或通过Grab实用程序得到支持(尽管它们的功能不够广泛,无法证明我将它们作为子进程启动).

参考/提示

  • nm/usr/sbin/screencapture返回私有Cocoa接口,包括_CGSGetSharedWindow,它们似乎是这样做的.
  • 第三方应用程序Snapzpro执行此操作(但不提供源代码)

Chu*_*uck 6

Mac OS X 10.5引入了Quartz Window Services API来实现这一目标.