类似这个脚本的东西
tell application "Safari"
activate
end tell
tell application "System Events"
set frontAppID to bundle identifier of first process whose frontmost is true
end tell
返回"com.apple.Safari"
但是,如果我尝试类似的东西
if frontAppID of bundle identifier of first process whose frontmost is "com.apple.safari" then
那就行不通了。显然,捆绑标识符不能与字符串进行比较。如何创建可在比较中使用的捆绑标识符对象?
bundle identifier
是一个字符串,所以字符串到字符串的比较很好。您的语句的问题是:frontAppID of bundle identifier
,这是无效的,因为frontAppID
不是bundle identifier
的属性;frontmost is
后面应该跟一个布尔值,而不是一个字符串。
修复这些问题(并假设您将将其包含在相应的系统事件命令块中(:
if the bundle identifier ¬
of (the first process ¬
whose frontmost is true) ¬
is "com.apple.safari" then ¬
return true
附言您是否知道您也可以执行此操作(无需调用系统事件(:
if application "Safari" is frontmost then return true
或者,使用捆绑标识符:
if application id "com.apple.safari" is frontmost then return true
您的语法不正确。 正确的应该是:
tell application "System Events"
if (bundle identifier of first process whose frontmost is true) is "com.apple.Safari" then
display dialog "Safari front most !"
end if
end tell