Swift не может получить доступ к другим окнам приложения - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь получить доступ к окнам запущенных приложений через мое приложение.В настоящее время я собираю данные всех запущенных приложений, и kCGWindowNumber отображается на приложения, но у меня возникают проблемы с отображением окна на этот kCGwindowNumber.

Как я могу ссылаться на мои окна других запущенных приложений черезмой?У меня есть kCGWindowNumber этих приложений, но я не могу понять, как получить доступ к окнам.

Вот как я получаю свои данные

let options = CGWindowListOption(arrayLiteral: CGWindowListOption.excludeDesktopElements, CGWindowListOption.optionOnScreenOnly)
let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))

Затем я сохраняю их в объект, который представляет мое работающее приложение.Например,

{
    kCGWindowAlpha = 1;
    kCGWindowBounds =     {
        Height = 22;
        Width = 3840;
        X = 5520;
        Y = 0;
    };
    kCGWindowLayer = 24;
    kCGWindowMemoryUsage = 341416;
    kCGWindowNumber = 190;
    kCGWindowOwnerName = "Google Chrome";
    kCGWindowOwnerPID = 272;
    kCGWindowSharingState = 1;
    kCGWindowStoreType = 2;
}

Теперь, когда у меня есть kCGWindowNumber, я пытался получить доступ к другим приложениям с помощью этого

NSApplication.shared.window(withWindowNumber: kCGWindowNumber_FOR_WINDOW_I_WANT)

, но, прочитав документацию, я понял, что NSApplication.shared возвращает Возвращаетэкземпляр приложения, и эти окна не являются частью моего приложения.

...