我想这样做:
tell application "Finder" to set appName to (application file id "com.google.Chrome") as text
using terms from application appName
tell application appName to get URL of active tab of first window
end using terms from
这不起作用,因为“使用术语来自”需要应用程序名称作为字符串常量。如果我替换这一行:
using terms from application appName
有了这个
using terms from application "Google Chrome"
有用。但是我不想依赖具有名为“Google Chrome”的应用程序的目标机器。使用捆绑标识符似乎更安全。有一个更好的方法吗?
编辑
按照@regulus6633 的建议,我尝试了以下方法:
NSAppleScript* script = [[NSAppleScript alloc] initWithSource:
@"tell application \"Finder\" to set appName to (application file id \"com.google.Chrome\") as text"
@"\nusing terms from application \"Google Chrome\""
@"\ntell application appName to get URL of active tab of first window"
@"\nend using terms from"];
效果很好,但是如果我在“Google Chrome”重命名为“Chrome”的另一台计算机上运行相同的(编译的)应用程序,我会弹出一个对话框,询问“Google Chrome”在哪里。好像 NSAppleScript 是在运行时编译的?