Как я могу заставить этот ApplesScript работать мгновенно без задержки 13 секунд?
Я пытался создать ярлык на OSX Mountain Lion, чтобы "поделиться файлом" с приложением LogMeIn, так как он не существует. Я открыл Automator и создал приложение под "смотреть, как я". Я нажал "запись" и перешел к строке меню, нажал "LogMeIn"> "Поделиться файлом...", нажал "Поделиться файлом" в этом диалоговом окне и остановил запись. Затем я скопировал команды в Automator и вставил их в редактор AppleScript, надеясь изменить несколько вещей, чтобы он выполнялся быстрее. Я выбрал 10x для скорости в Automator, и это все еще занимает около 13 секунд с момента, когда я делаю ярлык. Если кто-нибудь знает, как изменить этот AppleScript, чтобы сделать его мгновенным, смело меняйте его.
Любая помощь будет оценена.
Спасибо
-- Click the “<fill in title>” menu.
set timeoutSeconds to 2.0
set uiScript to "click menu bar item 1 of menu bar 1 of application process \"LogMeIn Menubar\""
my doWithTimeout(uiScript, timeoutSeconds)
-- Share a file...
set timeoutSeconds to 2.0
set uiScript to "click menu item \"Share a file...\" of menu 1 of menu bar item 1 of menu bar 1 of application process \"LogMeIn Menubar\""
my doWithTimeout(uiScript, timeoutSeconds)
-- Click the “Share a file...” button.
set timeoutSeconds to 2.0
set uiScript to "click UI Element \"Share a file...\" of group 1 of window \"LogMeIn\" of application process \"LogMeIn\""
my doWithTimeout(uiScript, timeoutSeconds)
on doWithTimeout(uiScript, timeoutSeconds)
set endDate to (current date) + timeoutSeconds
repeat
try
run script "tell application \"System Events\"
" & uiScript & "
end tell"
exit repeat
on error errorMessage
if ((current date) > endDate) then
error "Can not " & uiScript
end if
end try
end repeat
end doWithTimeout
1 ответ
Это действительно круто. Я не знал, что вы можете скопировать / вставить эти команды "Watch Me Do" в редакторе AppleScript. Я думаю, я найду для этого применение.
В любом случае вы не сможете сделать свой код "мгновенным", потому что это делает только пользовательский интерфейс. Однако, если бы я писал ваш код как обычный appleScript, вот как бы это выглядело. Попробуйте, может быть, это поможет. Я не могу проверить это, потому что у меня нет этого приложения. Удачи.
ПРИМЕЧАНИЕ. Я сделал "Общий доступ к файлу…" как "Общий доступ к файлу" и многоточие (опция-точка с запятой). Если у вас есть проблемы, попробуйте изменить многоточие на 3 периода.
set timeoutSeconds to 2.0
tell application "LogMeIn Menubar" to activate
tell application "System Events"
tell process "LogMeIn Menubar"
click menu bar item 1 of menu bar 1
-- delay until it opens
set startTime to current date
repeat until exists menu 1 of menu bar item 1 of menu bar 1
delay 0.2
if (current date) - startTime is greater than timeoutSeconds then
error "Waited too long for menu 1 of menu bar item 1 of menu bar 1"
end if
end repeat
click menu item "Share a file…" of menu 1 of menu bar item 1 of menu bar 1
-- delay until it opens
set startTime to current date
repeat until exists group 1 of window "LogMeIn"
delay 0.2
if (current date) - startTime is greater than timeoutSeconds then
error "Waited too long for group 1 of window \"LogMeIn\""
end if
end repeat
click UI element "Share a file…" of group 1 of window "LogMeIn"
end tell
end tell