kCGWindowName的价值是多少?

时间:2012-12-02 20:14:53

标签: cocoa quartz-graphics

我通过基于ffilib的FFI使用Quartz(即Quartz是动态加载的)。对CGWindowListCopyWindowInfo的调用会返回包含有关窗口信息的CFArray字典。一个有趣的关键是kCGWindowName,可用于获取窗口的名称。

在C中,会包含approriate头文件,但由于我使用的是ffilib,我需要知道kCGWindowName的值。根据Apple的文档,它是CFStringRef

如何获取kCGWindowName的值?

在头文件中尝试grepping kCGWindowName没有给出可用的结果。

1 个答案:

答案 0 :(得分:2)

像这样......

CFArrayRef windowsInfo = CGWindowListCopyWindowInfo(listOptions, kCGNullWindowID); 

for (CFIndex idx=0; idx<CFArrayGetCount(windowsInfo); idx++) {
    CFDictionaryRef dict = CFArrayGetValueAtIndex(windowsInfo, idx);
    CFStringRef windowName = CFDictionaryGetValue(dict, kCGWindowName);
    NSString* nsWindowName = (NSString*)windowName;
}

CFRelease(windowsInfo);