2013-05-03 59 views
2

我是AppleScript的新手,只是潛入UI腳本。我試圖爲程序TypeIt4Me創建一個腳本,它是一個沒有AppleScript支持的菜單欄工具(文本擴展)。AppleScript UI腳本編寫通常非常慢,還是它是我的腳本,還是別的?

我建議的腳本會利用系統事件單擊它的菜單欄圖標,鍵入五次,右鍵一次,然後返回。但是,AppleScript會在點擊圖標和執行第一次擊鍵之間暫停很長一段時間,以至於作爲腳本這是不切實際的。以下是第一次點擊和第一次按下的版本。

tell application "System Events" 

click menu bar item 1 of menu bar 2 of application process "TypeIt4Me" 
key code 125 -- ie "down" 

end tell 

這可能是我的代碼有問題嗎?某個地方的設置?一般AppleScript?謝謝。

+0

讓我想起了這一點:http://stackoverflow.com/ questions/16126027/applescript-delay-issue基本上是的,GUI腳本經常在'click'後做很大的延遲。 – matt 2013-05-04 02:18:58

回答

0

你點擊了什麼圖標?你的意思是雙擊?也許你的意思是「啓動劇本」? 如果您的腳本需要很長時間才能真正開始運行,這是AppleScript的典型特徵,並非由您的腳本引起。如果TypeIt4Me可以運行應用程序而不是腳本,或者如果作爲應用程序編譯和運行腳本是一種選擇,那麼您應該能夠加快它的速度。它仍然需要一些時間才能啓動,但腳本不需要先編譯。

1

您的腳本也需要約5秒鐘爲我運行。這樣的延遲雖然不是很常見。

這使腳本在大約0.05秒後返回,但我無法弄清楚如何在沒有延遲的情況下運行鍵碼命令。

ignoring application responses 
    tell application "System Events" to tell process "TypeIt4Me" 
     click menu bar item 1 of menu bar 2 
    end tell 
end ignoring 

這並沒有工作,要麼:

with timeout of 0.2 seconds 
    try 
     tell application "System Events" to tell process "TypeIt4Me" 
      click menu bar item 1 of menu bar 2 
     end tell 
    end try 
end timeout 
tell application "System Events" 
    key code 125 
end tell 

命令之間端接系統事件所做的工作,但:

ignoring application responses 
    tell application "System Events" to tell process "TypeIt4Me" 
     click menu bar item 1 of menu bar 2 
    end tell 
end ignoring 
do shell script "killall System\\ Events" 
delay 0.1 
tell application "System Events" 
    key code 125 
end tell 
+0

我正面臨同樣的問題,在點擊下一個菜單項之前,在藍牙「點擊」之後延遲5秒。有什麼辦法可以避免這種延遲嗎?下面的'告訴應用程序「系統事件」告訴進程「SystemUIServer」給 \t集bt至菜單欄(第一個菜單欄項目,其描述是「藍牙」),代碼1 \t點擊BT \t告訴(第一個菜單項,其標題是菜單的 「SBH80」)BT \t \t點擊 \t \t \t \t是否存在菜單項 「斷開連接」,然後 \t \t \t \t點擊菜單項 「斷開」 \t訴說菜單\t其他 \t \t \t \t點擊菜單項「連接」 \t \t \t結束時,如果 \t \t年底告訴 \t年底告訴 結束tell' – 2016-04-01 19:36:49

+0

之所以能夠通過封閉來修復它在「點擊BT」命令的「忽略應用程序響應「塊。現在它毫無延遲地完美運行。因此,導致UI延遲的命令只應包含在忽略塊中。非常感謝您展示方向。 – 2016-04-02 04:46:34

+0

已在此主題發佈了詳細解答 - > [link](http://stackoverflow.com/questions/16126027/applescript-delay-issue/36370778#36370778) – 2016-04-02 08:07:10

相關問題