我知道MacOS中有几种方法可以通过命令行中的给定URL打开Safari,如
open -a Safari http://stackoverflow.com
或作为AppleScript
tell application "Safari" to open location "http://stackoverflow.com/"
但如果我开始这个过程,例如以编程方式我将只获得open / applescript进程的句柄(在Safari启动后立即退出)。
如何使用给定的URL启动Safari并获取Safari进程的句柄(为什么它不能只将URL作为命令行参数传递给Safari可执行文件,这仍然超出我的意思?)
答案 0 :(得分:6)
tell application "Safari" to open location "http://stackoverflow.com/"
您可以通过
获取过程对象tell application "System Events" to set proc to application process "Safari"
proc对象将附加pid,bundle id等。
另请注意,Safari 5+在multi-process architecture中运行:主进程和多个渲染过程,上面的代码只会让您获得主进程;渲染过程不易访问,控制任何单独的渲染过程也没有多大意义。