2016-05-24 8 views
0

私は、アプリケーションのウィンドウを取得するためにAppleScriptを使用したいのですが、アプリは複数のウィンドウを持つことができるので、私は次のようにWINDOWIDを取得するにObjC使用:私を得るwindowId私はappleScriptから取得しますが、CGWindowInfoは異なりますか?

CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | 
                kCGWindowListExcludeDesktopElements, 
                kCGNullWindowID); 
     for (CFIndex i = 0; i < windowListCount; i++) { 
     CFDictionaryRef windowInfo = (CFDictionaryRef)CFArrayGetValueAtIndex(windowList, i); 
     CGWindowID windowId; 
     CFNumberGetValue((CFNumberRef)CFDictionaryGetValue(windowInfo, kCGWindowNumber), kCGWindowIDCFNumberType, &windowId); 
     } 

が、これWINDOWIDがWINDOWID異なっていますAppleScriptのフォローなどから:

tell application "/Applications/QQBrowser.app" 
repeat with theWindow in windows 
    if visible of theWindow is true then 
     get id of theWindow 
    end if 
end repeat 

エンド

を教えてくれ、私は誰もが知っている、なぜない、便利なSTH見つけることができませんでしたか?

私の目的は、アプリケーションのウィンドウを区別することです、誰かがいくつかのアイデアを持っていますか?
どうもありがとうございました〜

答えて

0
tell application "Numbers" 
    get id of every window whose visible is true 
end tell 

Result: {1462, 1439} 

これらはオープン可視ウィンドウのための一意のidのです。あなたはアプリのウィンドウを区別するために、この一意のIDを使用することができ、あなたはまた、次のようなコードで各ウィンドウに関する詳細情報を入手することができます助けを

get properties of window id 1462 
+0

おかげで、私はあなたの方法を試してみたが、結果は判明しますapplescriptの結果は93ですが、ウィンドウのCGWindowIDは7493なので、これは私には当てはまりません。最後に、ウィンドウの境界を判断してウィンドウを識別する方法を使用します。 – melody5417

関連する問題