Applescript - 如何比较(在 if 子句中)捆绑标识符?



类似这个脚本的东西

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

相关内容

  • 没有找到相关文章

最新更新