2016-05-13 69 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