我正在尝试通过我的应用程序访问正在运行的应用程序的窗口。目前,我正在获取所有正在运行的应用程序的数据,并将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返回了返回应用程序实例,并且这些窗口与我的应用程序并不分离。