2016-05-13 151 views
1

我的AppleScript给正确的输出时,里面的Automator跑为没有输入服务,但是当跑到外面的Automator(Safari浏览器,预览等)为什么这个bug - AppleScript的,自动机与AppleScript的编辑

它提供了错误信息这也给通过applescript编辑器运行时的正确输出,没有问题与safari运行,预览或任何其他应用程序。

我是如此渴望得到它的Automator做的原因是,我不想安装第三方应用程序只分配一个快捷方式到一个脚本。

我调试该部分从代码去除后允许自动机运行脚本。试试吧,在automator的错误&中提琴,根本没有问题。

但我想知道为什么这段代码前面&没有尝试错误的功能是给在外面跑的Automator应用程序中的错误消息。

这里的脚本与试错功能部分:

try 

set writ to do shell script "/usr/bin/python Users/[username]/Documents/tech_toolkit/windtitle" 

tell application writ 
    if the (count of windows) is not 0 then 
     set window_title to name of front window 
    end if 
end tell 

on error 

    delay 2 

end try 

对于shell脚本/ windtitle,windtitle是一个可执行文件

#!/usr/bin/env python 

from AppKit import NSWorkspace 
active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName() 
print active_app_name 
+0

什么是脚本怎么办呢?预期的结果是什么?什么是错误信息?基本上,只有当目标应用程序具有AppleScript字典并且该字典包含具有默认不需要的名称属性的窗口元素时,脚本才能工作。 – vadian

+0

它关于返回基于用户的输入以及元数据细节[如果safari - 然后url其他任何应用程序位于我的笔记本电脑中的文件位置,日期和时间,窗口标题]。我得到的结果,只是对上面解释过的automator的奇怪行为感到好奇,直到我使用try-error函数。我得到的错误消息是:“运行AppleScript”操作遇到错误。 – lawsome

+0

为了让您的脚本错误在脚本中使用 - >'在误差err' - 下一行 - >'显示的对话框err' – jackjr300

回答

1

的错误是:

  • 您的python脚本返回“Automator Runner”应用程序n当它作为服务运行时,它在后台的最前面,但不在前台的 。

要获得最前面的应用程序,使用这个脚本:

try 
    tell application (path to frontmost application as text) 
     set window_title to name of front window 
     set writ to its name -- get the name of this application 
    end tell 
on error 
    return -- quit this script, because this application is not scriptable, or no window 
end try