1

次のように 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が存在することを確認するだけで同様のコードを実行しますか?

前もって感謝します

4

1 に答える 1

1

kCGWindowListOptionOnScreenOnly定数のドキュメントには次のように記載されています。

現在画面に表示されているすべてのウィンドウを一覧表示します。窓は手前から奥へと順番に戻されます。このオプションでリストを取得する場合、relativeToWindow パラメーターを kCGNullWindowID に設定する必要があります。

への呼び出しとCGWindowListCopyWindowInfoそれに対するアクションの間に何も起こっていないように見えるため、ウィンドウは確実に画面上に表示されます。

それらが非表示または最小化されていないことを確認するためにテストしたい場合がありますか?

于 2012-08-06T21:04:53.947 に答える