2017-11-07 9 views
4

タイトルからCGWindowIDを取得するにはどうすればよいですか?タイトルからウィンドウIDを取得する方法swift3

私はこのコード

let options = CGWindowListOption(arrayLiteral: CGWindowListOption.excludeDesktopElements, CGWindowListOption.optionOnScreenOnly) 
let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0)) 
let infoList = windowListInfo as NSArray? as? [[String: AnyObject]] 

https://stackoverflow.com/a/31367468/1536527

によってタイトルのリストを取得することができます思ったが、Windowsのタイトルのための情報が存在しないようです。

CGWindowIDやその他の情報をタイトルごとに指定するにはどうすればよいですか?

答えて

2

実際に投稿したコードスニペットは私にとってはうまくいくようです。私がしたことは、辞書を繰り返して、特定のウィンドウタイトルのウィンドウ情報を見つけることでした。ここで

コードです:上記機能付き

func getWindowInfo(pname: String) -> Dictionary<String, AnyObject> { 
    var answer = Dictionary<String, AnyObject>() 
    let options = CGWindowListOption(arrayLiteral: CGWindowListOption.optionOnScreenOnly) 
    let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0)) 
    let infoList = windowListInfo as NSArray? as? [[String: AnyObject]] 


    infoList?.forEach{eachDict in 
     eachDict.keys.forEach{ eachKey in 
      if (eachKey == "kCGWindowName" && eachDict[eachKey] != nil){ 
       let name = eachDict[eachKey] as? String ?? "" 
       print (name) 
       if (name == pname){ 
        print("******** Found **********") 
        answer = eachDict as! Dictionary<String, AnyObject> 
       } 
      } 
      print(eachKey , "-->" , eachDict[eachKey]) 
     } 
    } 
    return answer 
} 

、私は、例えば名など、ウィンドウの詳細情報を取得することができています。

私はそれもあなたのために働くことを願っています。

関連する問題