Как я могу заставить этот 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
Другие вопросы по тегам