如何动态定位不同的 FileMaker 应用程序
How to dynamically target the different FileMaker applications
我正在编写一个系统范围的服务,它接受当前选定的文本并在我们的内部 FileMaker 数据库中进行各种搜索。
我写了一些在我的开发机器上运行良好的东西,其中 FileMaker 以 "FileMaker Pro Advanced" 的形式存在。现在我无法在安装了非开发人员版本的 FileMaker ("FileMaker Pro") 的其他机器上运行它。
问题是,当脚本 运行s 在其中一台客户端计算机中时,由于 "using terms" 行,我得到 "Where is foo" 对话框(我会说),我不想要那个。是否可以针对 FileMaker,以便我可以编译我的脚本并 运行 它在我的客户端上?
这是我目前拥有的:
on run {input, parameters}
set _target to null
try
tell application "Finder" to get name of application "FileMaker Pro Advanced"
set _target to application "FileMaker Pro Advanced"
end try
if _target is null then
try
tell application "Finder" to get name of application "FileMaker Pro"
set _target to application "FileMaker Pro"
end try
end if
if _target is null then
display alert "FileMaker cannot be found"
return
end if
using terms of "FileMaker Pro Advanced"
tell _target
-- script goes here
end tell
end using terms of
end run
像这样的简单初始测试怎么样:
try
if exists application "FileMaker Pro Advanced" then
set _target to "FileMaker Pro Advanced"
else if exists application "FileMaker Pro" then
set _target to "FileMaker Pro"
else
<handle error>
end if
end try
如果您希望最终用户在标准位置安装 FileMaker,则以下操作应该有效:
set _fmpa to "/Applications/FileMaker/FileMaker Pro Advanced.app"
set _fmp to "/Applications/FileMaker/FileMaker Pro.app"
try
tell application _fmpa to launch
set _target to _fmpa
end try
try
tell application _fmp to launch
set _target to _fmp
end try
tell application _target
...
end tell
我正在编写一个系统范围的服务,它接受当前选定的文本并在我们的内部 FileMaker 数据库中进行各种搜索。
我写了一些在我的开发机器上运行良好的东西,其中 FileMaker 以 "FileMaker Pro Advanced" 的形式存在。现在我无法在安装了非开发人员版本的 FileMaker ("FileMaker Pro") 的其他机器上运行它。
问题是,当脚本 运行s 在其中一台客户端计算机中时,由于 "using terms" 行,我得到 "Where is foo" 对话框(我会说),我不想要那个。是否可以针对 FileMaker,以便我可以编译我的脚本并 运行 它在我的客户端上?
这是我目前拥有的:
on run {input, parameters}
set _target to null
try
tell application "Finder" to get name of application "FileMaker Pro Advanced"
set _target to application "FileMaker Pro Advanced"
end try
if _target is null then
try
tell application "Finder" to get name of application "FileMaker Pro"
set _target to application "FileMaker Pro"
end try
end if
if _target is null then
display alert "FileMaker cannot be found"
return
end if
using terms of "FileMaker Pro Advanced"
tell _target
-- script goes here
end tell
end using terms of
end run
像这样的简单初始测试怎么样:
try
if exists application "FileMaker Pro Advanced" then
set _target to "FileMaker Pro Advanced"
else if exists application "FileMaker Pro" then
set _target to "FileMaker Pro"
else
<handle error>
end if
end try
如果您希望最终用户在标准位置安装 FileMaker,则以下操作应该有效:
set _fmpa to "/Applications/FileMaker/FileMaker Pro Advanced.app"
set _fmp to "/Applications/FileMaker/FileMaker Pro.app"
try
tell application _fmpa to launch
set _target to _fmpa
end try
try
tell application _fmp to launch
set _target to _fmp
end try
tell application _target
...
end tell