OSX:在登录窗口中枚举屏幕

Nid*_*ger 9 macos objective-c

我试图在登录屏幕上使用OSX通过命令行枚举屏幕(使用ssh).

但两者[NSScreen screens]CGGetActiveDisplays都返回0屏幕.还有另一种屏幕枚举方法吗?

The*_*man 5

登录前代理可以使用 CGGetOnlineDisplayList 枚举显示。

我使用了此处的示例 Apple 代码。

修改为链接CoreGraphics,在applicationDidFinishLaunching方法中添加如下代码:

CGDirectDisplayID displays[10];
uint32_t numDisplays = 0;

CGGetOnlineDisplayList(10, displays, &numDisplays);

for(uint32_t i = 0; i < numDisplays; i++)
{
    [[LogManager sharedManager] logWithFormat:@">>> Found an online display!"];
}

if(numDisplays == 0)
    [[LogManager sharedManager] logWithFormat:@"<<<<< No displays!"];
Run Code Online (Sandbox Code Playgroud)

按照示例中有关如何查看日志的文档,登录屏幕上会打印以下内容:

Jul 12 10:03:09 veeboxs-MacBook-Pro PreLoginAgentCocoa[3129] <Info>: Did finish launching begin Jul 12 10:03:09 veeboxs-MacBook-Pro PreLoginAgentCocoa[3129] <Info>: Showing window with extreme prejudice Jul 12 10:03:09 veeboxs-MacBook-Pro PreLoginAgentCocoa[3129] <Info>: Did finish launching end Jul 12 10:03:09 veeboxs-MacBook-Pro PreLoginAgentCocoa[3129] <Info>: >>> Found an online display!