RLT*_*RLT 5 macos macos-carbon
我试图找到一个Carbon API,它可以从窗口id给我WindowRef,并且我想要有windowref的界面?
编辑:我发现API extern WindowRef HIWindowFromCGWindowID(CGWindowID inWindowID); 但我无法使用它.我已经包含了碳标头,并且还将其框架添加到项目中.HI apis还需要其他东西吗?
任何帮助表示赞赏.感谢您的时间.
以下应该做 -
CGRect rect;
uint32_t windowid[1] = {windowID};
CFArrayRef windowArray = CFArrayCreate ( NULL, (const void **)windowid, 1 ,NULL);
CFArrayRef windowsdescription = CGWindowListCreateDescriptionFromArray(windowArray);
CFDictionaryRef windowdescription = (CFDictionaryRef)CFArrayGetValueAtIndex ((CFArrayRef)windowsdescription, 0);
if(CFDictionaryContainsKey(windowdescription, kCGWindowBounds))
{
CFDictionaryRef bounds = (CFDictionaryRef)CFDictionaryGetValue (windowdescription, kCGWindowBounds);
if(bounds)
{
CGRectMakeWithDictionaryRepresentation(bounds, &rect);
}
}
CFRelease(windowArray);
Run Code Online (Sandbox Code Playgroud)