Я хочу переместить окно с помощью API доступа.
Со следующим фрагментом
let options = CGWindowListOption(arrayLiteral: CGWindowListOption.excludeDesktopElements, CGWindowListOption.optionOnScreenOnly, CGWindowListOption.optionOnScreenAboveWindow)
let windowList = CGWindowListCopyWindowInfo(options, kCGNullWindowID) as NSArray? as? [[String: AnyObject]]
for entry in windowList!
{ if let bounds = entry[kCGWindowBounds as String] as? [String: Int],
let owner = entry[kCGWindowOwnerName as String] as? String,
let pid = entry[kCGWindowOwnerPID as String] as? Int32,
let windowNumber = entry[kCGWindowNumber as String] as? Int32
{ print("\(owner) (\(pid)-\(windowNumber))")
.....
обнаружены активные окна.
Для некоторых процессов (например, заметок) я получаю записи с тем же pid, но с другим windowNumber.
Я хочу переместить окно с заданным pid и windowNumber.
Я пробовал с этим фрагментом:
let appRef = AXUIElementCreateApplication(pid);
var value: AnyObject?
let result = AXUIElementCopyAttributeValue(appRef, kAXWindowsAttribute as CFString, &value)
if let windowList = value as? [AXUIElement]
{ ...
Возвращает список окон процесса.
Я хочу переместить одно из этих окон с заданным номером окна (из фрагмента выше)
Как мне найти это окно?