2011-09-27 59 views
2

我想寫一個蘋果紙條搜索麻雀(郵件客戶端適用於Mac)問題跟貼

下面是腳本:

on run argv 

    tell application "Sparrow" 
     activate 
    end tell 

    tell application "System Events" 
     key code 3 using {option down, command down} 
     keystroke argv 
    end tell 
end run 

的問題是,我想腳本拍攝一個關於運行的論點,以便我可以提供搜索的內容,但是我無法將其解決。

回答

2
  1. argv總是初始化列表。
  2. 你不能擊鍵列表(你必須先強制​​每個項目到一個字符串)。
  3. 你永遠無法知道的,將被髮送到腳本參數的確切數字,所以更好的路線是通過列表進行迭代,做任何需要做的事情,如下圖所示:

    tell application "System Events" 
        tell process "Sparrow" 
         key code 3 using {command down, option down} 
         repeat with this_item in argv 
          keystroke (this_item as string) 
         end repeat 
        end tell 
    end tell 
    

@Runar

  1. 腳本是暗示麻雀已經被激活。
  2. 你不能這樣寫(every text item of argv的結果仍然是一個列表)。但是,如果將結果強制轉換爲字符串,這將起作用,但它會將所有內容擠在一起(假設AppleScript's text item delimiters"")。如果您set AppleScript's text item delimiters to space,那麼這實際上是比以前更好的劇本......

    on run argv 
        tell application "Sparrow" to activate 
        tell application "System Events" 
         tell process "Sparrow" --implying Sparrow is already activated 
          set prevTIDs to AppleScript's text item delimiters 
          key code 3 using {command down, option down} 
          set AppleScript's text item delimiters to space 
          keystroke (every text item of argv) as string 
          set AppleScript's text item delimiters to prevTIDs 
         end tell 
        end tell 
    end run 
    
+0

確定。你的腳本不會激活麻雀,所以密鑰不會被髮送到正確的應用程序。我可以做「keystroke(every item go agrv)? – Runar

+0

@Runar查看我的編輯 – fireshadow52

+0

謝謝,現在看起來不錯,但劇本需要s來激活Sparrow,腳本的要點是從Alfred開始。 – Runar