2012-08-27 5 views
10

を扱う取得私はSafariを開き、プロセスは

open -a Safari http://stackoverflow.com 

またはAppleScriptの

tell application "Safari" to open location "http://stackoverflow.com/" 
などのようなコマンドラインから与えられたURLでサファリを開くためにMacOSの中にいくつかの方法があります知っています

しかし、私がプロセスを開始している場合プログラムでは、私はopen/applescriptプロセス(Safariの起動直後に終了する)へのハンドルを取得します。

特定のURLでSafariを起動し、Safariプロセスのハンドルを取得するにはどうすればよいですか(Safari実行ファイルへのコマンドライン引数としてURLを渡すだけの理由は何ですか? AppleScriptの中

答えて

6

、URL

tell application "Safari" to open location "http://stackoverflow.com/" 

でのSafariを開いた後、あなたはPROCオブジェクトはPID、それに接続されているIDとなどをバンドルしています

tell application "System Events" to set proc to application process "Safari" 

によってプロセスオブジェクトを得ることができます。

Safari 5+はmulti-process architectureで動作します。マスタープロセスと複数のレンダリングプロセスがあり、上記のコードではマスタープロセスのみが表示されます。レンダリングプロセスに簡単にアクセスすることはできませんし、個々のレンダリングプロセスを制御することも非常に意味がありません。

関連する問題