2013-02-08 27 views
6

applescriptを使用して特定のアプリケーションの特定のウィンドウにフォーカスを設定するにはどうすればよいですか?applescriptを使用してアプリケーションの特定のウィンドウにフォーカスを設定します

私はいくつかのiTerm2ウィンドウを別のディスプレイで実行しています。私は、AppleScriptを使用して指定されたウィンドウにフォーカスを設定したい。

私はウィンドウIDを収集してstdoutに出力するスクリプトが2つ必要です。私はこれを持っている:

6の整数を出力します
tell application "iTerm" 
    set wins to id of every window 
end tell 

:3034、2528、-1、-1、-1、-1

ボーナス質問:4つの-1年代は何ですか?その後

私は試してみてください。

tell application "System Events" 
    activate window 3034 
end tell 

た時に起こっ唯一のことは、私は(ここで私は、これらのコマンドを入力しています)私の現在の端末のフォーカスを失うということですが、私のように3034または2528を指定するかどうかは重要ではありませんID。

+2

[別の質問でこの質問](http://apple.stackexchange.com/questions/39204/script-to-raise-a-single-window-to-the-front)をチェックしてください。もしあなたが 'someWindow'の' 'アクションを実行する' 'AXRaise'を' 'tell application"と組み合わせるならば、 "activate to"アプリケーションは、あなたが望むものを得るでしょう。しかし注意点(そしてこれは答えではない)は、あなたがこのようにウィンドウIDでウィンドウを指定するように見えないということです(私が正しく理解するかのようにウィンドウIDはアプリケーション固有です)。ボーナスの質問:-1はおそらく、設定/表示ダイアログのようなもので、表示される場合もあれば表示されない場合もあります。 –

答えて

3

あなたはほとんどそれを持っています。あなたにのみ表示窓を見て、「-1」ウィンドウIDをフィルタリングすることができます

tell application "iTerm 2" 
    set wins to id of every window whose visible is true 
end tell 

が、私は結果を見て、これを考え出し:

tell application "iTerm 2" to properties of every window 

は、私がいることに気づきました「 -

tell application "iTerm 2" 
    activate window 13195 
end tell 
:1" ウィンドウが次にあなたの代わりにシステムイベントのITERMアプリケーションに直接ウィンドウのIDを伝えることができるプロパティに visible:false

を持っています

+4

これは私にとってはうまくいきたいと思っていますが、代わりに特定のアプリケーションの最後のアクティブなウィンドウをアクティブにするだけです。 –

関連する問題