Swift无法访问其他应用程序窗口

时间:2019-06-22 00:47:02

标签: swift macos cocoa nsapplication

我正在尝试通过我的应用程序访问正在运行的应用程序的窗口。目前,我正在获取所有正在运行的应用程序的数据,并将kCGWindowNumber映射到该应用程序,但是我无法将窗口映射到该kCGwindowNumber。

如何通过我的窗口引用其他正在运行的应用程序的窗口?我有那些应用程序的kCGWindowNumber,但无法弄清楚如何访问Windows。

这就是我获取数据的方式

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返回了返回应用程序实例,并且这些窗口与我的应用程序并不分离。

0 个答案:

没有答案