相关疑难解决方法(0)

给定窗口ID,确定窗口所在的屏幕

NSScreen假设我有窗口ID,有没有办法获得另一个进程的窗口?

我与以下代码非常接近,但信息字典没有说明窗口在哪个屏幕上.

CFArrayRef windowArray = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
NSArray*  windowList = (NSArray*)CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
NSUInteger count = [windowList count];
for (NSUInteger i = 0; i < count; i++)
{
    NSDictionary*   nswindowsdescription = [windowList objectAtIndex:i];
    NSNumber* windowid = (NSNumber*)[nswindowsdescription objectForKey:@"kCGWindowNumber"];
    if(windowid)
    {
        if ([windowid integerValue] == appWeAreLookingForWindowId)
        {
            Warning(@"Found it: %@", nswindowsdescription);
        }
    }
}
CFRelease(windowArray);
Run Code Online (Sandbox Code Playgroud)

来自:CGWindowListCopyWindowInfo,kCGWindowLayer和窗口级别

这里输出:

kCGWindowAlpha = 1;
kCGWindowBounds =     {
    Height = 1010;
    Width = 1600;
    X = 284;
    Y = 43;
};
kCGWindowIsOnscreen = 1; // …
Run Code Online (Sandbox Code Playgroud)

cocoa nswindow

6
推荐指数
1
解决办法
1149
查看次数

获得WindowRef的界限?

我试图找到一个Carbon API,它可以从窗口id给我WindowRef,并且我想要有windowref的界面?

编辑:我发现API extern WindowRef HIWindowFromCGWindowID(CGWindowID inWindowID); 但我无法使用它.我已经包含了碳标头,并且还将其框架添加到项目中.HI apis还需要其他东西吗?

任何帮助表示赞赏.感谢您的时间.

macos macos-carbon

5
推荐指数
1
解决办法
1896
查看次数

确定窗口在 macOS 中的哪个显示

我有一个窗口的 CGWindowID 和我的 Mac 的所有 CGDirectDisplayID。然后我想知道哪个显示窗口。我尝试获取窗口的 CGWindowInfo?但找不到有用的信息。

CFArrayRef windowList =  CGWindowListCopyWindowInfo(kCGWindowListOptionIncludingWindow, windowID);
CFArrayApplyFunction(windowList, CFRangeMake(0, CFArrayGetCount(windowList)), &WindowListApplierFunction, this);
CFRelease(windowList);
Run Code Online (Sandbox Code Playgroud)

macos objective-c

3
推荐指数
1
解决办法
861
查看次数

标签 统计

macos ×2

cocoa ×1

macos-carbon ×1

nswindow ×1

objective-c ×1