gpt4 book ai didi

objective-c - 如何检查 CGWindowID 是否仍然有效

转载 作者:行者123 更新时间:2023-12-03 17:24:09 26 4
gpt4 key购买 nike

如果我得到如下所示的 CGWindowID (_windowID)...

NSArray *windowList = (__bridge NSArray *)CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
for (NSDictionary *info in windowList) {
if ([[info objectForKey:(NSString *)kCGWindowOwnerName] isEqualToString:@"window name"] && ![[info objectForKey:(NSString *)kCGWindowName] isEqualToString:@""]) {
_windowID = [[info objectForKey:(NSString *)kCGWindowNumber] unsignedIntValue];
}
}

如何正确测试窗口 id 是否仍然有效并且窗口尚未关闭?我是否只运行类似的代码来检查窗口 ID 是否存在?

提前致谢

最佳答案

kCGWindowListOptionOnScreenOnly 常量的文档说:

List all windows that are currently onscreen. Windows are returned in order from front to back. When retrieving a list with this option, the relativeToWindow parameter should be set to kCGNullWindowID.

因此窗口肯定会出现在屏幕上,因为在调用 CGWindowListCopyWindowInfo 和您对其执行的操作之间似乎没有发生任何事情。

也许您想进行测试以确保它们没有被隐藏或最小化?

关于objective-c - 如何检查 CGWindowID 是否仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11835831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com