【发布时间】:2012-12-08 10:22:50
【问题描述】:
大多数游戏(如果不是全部)不使用 Lion 的全屏功能。他们使用非官方方法使自己全屏显示。问题是 - 无论我将窗口的级别设置多高(我目前使用的是 25 级 - 使窗口高于状态栏及其图标),它都不会出现在游戏中。我想在游戏中实现类似于Steam全屏覆盖的效果。这可能吗?
【问题讨论】:
标签: objective-c macos cocoa
大多数游戏(如果不是全部)不使用 Lion 的全屏功能。他们使用非官方方法使自己全屏显示。问题是 - 无论我将窗口的级别设置多高(我目前使用的是 25 级 - 使窗口高于状态栏及其图标),它都不会出现在游戏中。我想在游戏中实现类似于Steam全屏覆盖的效果。这可能吗?
【问题讨论】:
标签: objective-c macos cocoa
全屏游戏通常根本不是 Windows。大多数此类应用程序都使用 CoreGraphics 来捕获显示(请参阅CGDisplayCapture),完全绕过窗口合成。 (所以你不能在它们上面显示内容。)请注意,这是完全“官方”的——它只是与全屏窗口不同的方法。
Steam 的工作原理是让 Steam 启动器将代码注入应用程序以显示状态弹出窗口。它不是一种可以——或者应该——在更一般的情况下使用的技术。
【讨论】:
mach_inject。但请注意,如果您自己没有启动受害者进程(如 Steam 那样),它需要用户授权,并且如果您不小心,则存在使受害者崩溃的重大风险。不要这样做。