在OSX上获取Active Window截图

时间:2015-03-03 19:45:41

标签: macos window

我希望能够获取后台应用程序的屏幕截图,同时1)使它们显示为活动状态,以及2)不将它们带到前台。背景窗口的图标和标题栏显示为灰色,这不适合拍摄您的应用程序。

我一直在使用SonOfGrab(https://developer.apple.com/library/mac/samplecode/SonOfGrab/Introduction/Intro.html)来捕获屏幕截图,但它总是将所有后台应用程序显示为非活动状态(按钮,标题栏等等都显示为灰色)。

是否有这样的消息将窗口绘制为活动状态,但是不将其移动到前台?

例如,这是一个活跃的Word: enter image description here

这是从Grab之子捕获的词: enter image description here

请注意所有工具栏图标和标题栏不再有效。希望修复SonOfGrab以使它们显示为活动状态,但不将窗口置于前台。

3 个答案:

答案 0 :(得分:-1)

当窗口应用程序具有焦点时,它会立即移动到前台。

你可以让你的应用程序就像它在前景(设计)中一样,但“焦点”只能给出一次。

答案 1 :(得分:-1)

要获取处于活动状态的应用的屏幕截图,请运行并将应用保留在前台,就像iTunes使用“迷你播放器”一样: iTunes Mini-Player

看看setLevel: in NSWindow Class' Apple Documentation

您可以在参数中使用these values

,即iTunes使用

之类的东西
window.level = Int(CGWindowLevelForKey(Int32(kCGMaximumWindowLevelKey)))

但是,如果您不使用swift,请查看我提供的链接,并根据您的需要进行一些测试。

然后,运行你的应用程序,打开你想截取屏幕截图的应用程序,两者看起来都像是“在前台”。

答案 2 :(得分:-1)

按Cmd + Shift + 4,然后按空格键,然后选择要使用的窗口。

干杯!