我正在为Mac编写一个IM客户端(在python中,但这里的Objective C/Cocoa解决方案很好).我想检测用户当前是在观看电影还是在前台玩游戏,或者做其他任何占用整个屏幕的事情.如果是这样,当新的IM进入时我不会播放声音,但如果没有,我将播放声音.
我怎么能发现这个?有没有办法用AppleScript获取前景窗口并查看其尺寸?或者是否有其他API调用?
谢谢.
要检查全屏,请在每个屏幕上调用CGDisplayIsCaptured(screenID).
但我不确定你是否正在检查正确的事情.首先,我可以捕获一个屏幕("全屏")和第二个屏幕未捕获,在这种情况下你想做什么?
此外,全屏真的有意义吗?如果我正在使用GarageBand来处理一首歌,我可能不想听到随机的声音,无论是否有任何全屏.或者我可以运行Windows VM全屏,但仍希望收到有关IM的通知.