establecer el tamaño y la posición de todas las ventanas en la pantalla de forma rápida

¿Es posible obtener rápidamente una lista de todas las aplicaciones con una ventana en primer plano y luego establecer el tamaño y la posición de estas ventanas?

Me sale la lista de propiedades de Windows como esta

let type = CGWindowListOption.optionOnScreenOnly
let windowList = CGWindowListCopyWindowInfo(type, kCGNullWindowID) as NSArray? as? [[String: AnyObject]]

for entry  in windowList!
{

  var owner = entry[kCGWindowOwnerName as String] as! String
  var bounds = entry[kCGWindowBounds as String] as? [String: Int]
  var pid = entry[kCGWindowOwnerPID as String] as? Int32

  print ("\(owner)  \(bounds) \(pid)  ")

  if owner == "Erinnerungen"
  { bounds!["X"] = 0
    bounds!["Y"] = 0
    print("reset bounds")

    let appRef = AXUIElementCreateApplication(pid!);  //TopLevel Accessability Object of PID
    print(appRef)

    var value: AnyObject?
    let result = AXUIElementCopyAttributeValue(appRef, kAXWindowsAttribute as CFString, &value)

    if result == .success, let windowList = value as? [AXUIElement]
    { // DO ANYTHING          
    } else
    { print("Result no Success or no valid windowlist returnd")          
    }
  }
}

Ahora trato de cambiar algunas de las propiedades, pero eso no tiene ningún efecto. Intentar también obtener el AttributeValue para el objeto de accesibilidad de nivel superior del PID devuelve AXError (kAXErrorCannotComplete = -25204)

Respuestas a la pregunta(1)

Su respuesta a la pregunta