我是AppleScript的新手,我正在尝试制作一个简单的AppleScript,它将弹出一个对话框,询问用户输入,并根据输入将打开一个或另一个应用程序。为此,我使用了:
tell application "atom"
activate
end tell
其中一个应用程序存储在名为Tardis的外部硬盘驱动器上。我下面的代码的问题在于,每次我同时运行脚本和对话框窗口时,它都会自动打开Atom。我只希望在给定输入a的情况下打开Atom。谢谢您的帮助!代码如下:
on run {input, parameters}
set inputText to text returned of (display dialog "Options: p - a - j" default answer "")
set p to "p"
set a to "a"
set j to "j"
if (inputText = p) then
tell application "Terminal"
if it is running then
do script "cd Python_Workspace; source ~/tensorflow/bin/activate"
end if
activate
end tell
tell application "Finder" to open POSIX file "/Volumes/Tardis/EXTRA Applications/Sublime Text.app"
end if
if (inputText = a) then
tell application "Atom"
activate
end tell
tell application "Terminal"
if it is running then
do script ""
end if
activate
end tell
end if
if (inputText = j) then
tell application "Terminal"
if it is running then
do script "cd /Java_Workspace"
end if
activate
end tell
tell application "IntelliJ IDEA CE"
activate
end tell
end if
return input
end run
答案 0 :(得分:0)
因此,某些支持Applescript的应用程序确实或确实需要启动应用程序才能编译Applescript(如果我没记错的话,这些应用程序对Applescript的支持不佳,我敢打赌是Atom)。
这可能不是正在发生的事情,特别是因为如果您正在启动已编译的Applescript,但是可能正在运行.applescript(文本)文件。
我会怎么做,而不是something
(您所拥有的单行版本),而是:tell application "Atom" to activate
。
如果这对您有用,那么activate application "Atom"
和activate
就是这样:
tell
。在activate
上您没有尝试执行Atom特定的任何操作...只需激活一个应用即可。无需字典查找。
(还应注意,我已经做了很长时间了。实际上,我可能引用的信息已经过时了十年或更长时间,或者是10.4中的“新”信息-不是10.14,而是10.4)< / p>