0

这是选定任务控制窗口的示例。已选择 Safari 这是选定任务控制窗口的示例。 已选择 Safari

这是在任务控制上未选择窗口的示例 没有在任务控制上选择窗口

怎么可能取消选择这个窗口?

使用 Swift/Obj-C/Applescript 之类的。但不改变鼠标位置

我的进度是这样的,我达到了任务控制窗口的属性 AXSelectedChildren。下面的代码

for entry in  (CGWindowListCopyWindowInfo(CGWindowListOption.optionOnScreenOnly, kCGNullWindowID) as NSArray? as? [[String: AnyObject]])!
    {
        if entry[kCGWindowOwnerName as String] as! String == "Dock"
        {
            let bounds: NSDictionary = entry[kCGWindowBounds as String] as! NSDictionary

            if (bounds["Y"] as! NSNumber) != 0{ //if Mission Control is Launched

                let dockAppElement = AXUIElementCreateApplication((entry[kCGWindowOwnerPID as String] as? Int32)!)

                var dockAttributeValues: AnyObject?

                _ = AXUIElementCopyAttributeValue(dockAppElement, kAXChildrenAttribute as CFString, &dockAttributeValues)

                var childrenRef = (dockAttributeValues as! [AXUIElement]).last // group 1 of Dock
                _ = AXUIElementCopyAttributeValue(childrenRef!, kAXChildrenAttribute as CFString, &dockAttributeValues)

                childrenRef = (dockAttributeValues as! [AXUIElement]).first // group 1 of group 1 of Dock
                _ = AXUIElementCopyAttributeValue(childrenRef!, kAXChildrenAttribute as CFString, &dockAttributeValues)

                childrenRef = (dockAttributeValues as! [AXUIElement]).first // group 1 of group 1 of group 1 of Dock
                _ = AXUIElementCopyAttributeValue(childrenRef!, kAXSelectedChildrenAttribute as CFString, &dockAttributeValues)
                        
                if let selectedWindow = (dockAttributeValues as! [AXUIElement]).first{ // selected Children of group 1 of group 1 of group 1 of Dock
                    _ = AXUIElementCopyAttributeValue(selectedWindow, kAXTitleAttribute as CFString, &dockAttributeValues)
                    if let titleWindow = (dockAttributeValues as? String){print(titleWindow)}

                }
                else{ // if selectedChildren == nil
                    print("no windows selected")
                }
                break
             }
         }
     }
4

0 回答 0