15

コマンドラインから特定のURLでSafariを開くには、MacOSにいくつかの方法があることを知っています

open -a Safari http://stackoverflow.com

またはAppleScriptとして

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

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

特定の URL で Safari を起動し、Safari プロセスへのハンドルを取得するにはどうすればよいですか (コマンド ライン引数として Safari 実行可能ファイルに URL を渡すことができない理由はまだわかりません)。

4

1 に答える 1

6

URLでSafariを開いた後、AppleScriptで

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

によってプロセスオブジェクトを取得できます

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

proc オブジェクトには、pid、バンドル ID などが関連付けられます。

また、Safari 5+ はマルチプロセス アーキテクチャで実行されることに注意してください。マスター プロセスといくつかのレンダリング プロセスです。上記のコードはマスター プロセスのみを取得します。レンダリング プロセスに簡単にアクセスできるわけではなく、個々のレンダリング プロセスを制御する意味もあまりありません。

于 2012-09-03T15:57:12.900 に答える