Кто-нибудь знает, как создать ярлык для прикрепления выбранного файла в iMessage?

Я хотел бы иметь возможность выбрать элемент на рабочем столе и ввести ярлык, чтобы прикрепить выбранный элемент к новому сообщению с помощью приложения Сообщения. Я попытался создать один в системных настройках / клавиатура / сочетания клавиш / ярлыки приложений под Finder.app набрал "Поделиться> Сообщение", и это не сработало. У меня есть ярлык для "нового письма с выбором", который я создал с помощью Automator, но сообщения там не вариант. Я также попытался выполнить поиск команды Applescript или терминала для этого, чтобы сделать это жестом смахивания с помощью Better Touch Tool. Я разговаривал со старшим советником Apple, и он сказал, что тоже не знает, как это сделать, и разместить его на форумах.

Если кто-нибудь знает, как сделать ярлык для этого действия, пожалуйста, дайте мне знать.

обновление: я скопировал это из /System/Library/PrivateFrameworks/ShareKit.Framework/Versions/A/Plugins/Message s.sharingservice/Contents/MacOS

Если кто-нибудь знает, может ли эта строка быть превращена в.service с автоматом, пожалуйста, дайте мне знать, как это сделать / изменить.

Спасибо

/System/Library/PrivateFrameworks/ShareKit.framework/Versions/A/PlugIns/Messages.sharingservice/Contents/MacOS /Messages; выход; NAME-Mac:~ NAME$ /System/Library/PrivateFrameworks/ShareKit.framework/Versions/A/PlugIns/Message s.sharingservice/Contents/MacOS/Messages; выход; -bash: /System/Library/PrivateFrameworks/ShareKit.framework/Versions/A/PlugIns/Message s.sharingservice/Contents/MacOS/Messages

-- 

задержка 0,218623 установите для timeoutSeconds значение 2.000000, установите для uiScript "щелкнуть изображение \" Тестовый файл \ "группы 1 области прокрутки 1 процесса приложения \" Finder \ "" my doWithTimeout( uiScript, timeoutSeconds)

- Задержка сообщения 0.263641 установить время ожидания секунды 2.000000 установить uiScript для "щелкнуть пункт меню \" Сообщение \ "меню 1 пункта меню" Поделиться "меню 1 из группы 1 области прокрутки 1 процесса приложения \" Поиск " "my doWithTimeout (uiScript, timeoutSeconds)

в doWithTimeout (uiScript, timeoutSeconds) установите для endDate значение (текущая дата) + timeoutSeconds, повторяйте попытку запуска сценария "сообщить приложению \" Системные события \" " & uiScript & "конец рассказать" завершить повтор при ошибке errorMessage if ((текущая дата) > endDate) тогда ошибка "Can not " & uiScript end, если end, попытаться, end, повторить, end, doWithTimeout.

1 ответ

Я не вижу, как заставить их работать.

Вы можете настроить службу Automator с ее входным параметром для файлов и папок в "Finder"

и использовать этот код в действии Run Applescript.

Это работает, но главное, что было проблемой, это найти правильного приятеля. Я установил его, чтобы вы могли выбрать тот, который вы хотите. Можно было бы проделать дополнительную работу. Я надеюсь, что вы сможете ввести имя, и он вернет меньший список совпадающих имен и дескрипторов.

on run {input, parameters}

    set buddieList to {}
    set splitter to "======"
    tell application "Messages"
        --set buddieList to {name of buddies, handle of buddies}
        repeat with i from 1 to number of items in buddies
            set this_item to item i of buddies
            copy (name of this_item as string) & splitter & handle of this_item as string to end of buddieList

        end repeat
    end tell


    set inputAlias to item 1 of input as alias

    set text_returned to item 1 of (choose from list buddieList with prompt "TO:" without multiple selections allowed and empty selection allowed)
    set theBuddy to (do shell script "echo  " & quoted form of text_returned & " | awk -F" & splitter & " '{print $2}'")
    tell application "Messages"
        set theBuddy to first buddy whose handle is theBuddy

        send inputAlias to theBuddy

    end tell

end run

**ОБНОВИТЬ.

В ответ на ваши комментарии: я на самом деле не использовал поле поиска в папке поиска. Так что было приятно видеть, что это структурировано так же, как я структурировал свой выбор.:-)

Но, похоже, он ищет вас в контактах, а не в списке друзей.

Таким образом, этот новый скрипт использует поиск имен контактов, который содержит любой текст, который вы вводите. И так же, как реальная доля. Нет никакой гарантии, что номер или адрес электронной почты будут связаны с iMessages.

Также обратите внимание, что я собрал это все за несколько минут. Так что не так аккуратно, как могло бы быть. но это дает вам возможность поиграть.

on run {input, parameters}

    set buddieList to {}
    set splitter to "======"
    tell application "Messages"
        activate
        display dialog "Name Contains.." default answer "" buttons {"Cancel", "OK"} default button 2
        copy the result as list to {text_returned, button_pressed}

    end tell
    tell application "Contacts"

        set buddies to people whose name contains text_returned

        repeat with a from 1 to number of items in buddies

            set this_name to name of item a of buddies
            set this_email to email of item a of buddies
            set this_phone to phone of item a of buddies
            repeat with e from 1 to number of items in this_email

                set this_email_item to item e of this_email
                if this_email_item is not {} then
                    copy (this_name) & splitter & value of this_email_item as string to end of buddieList
                end if
            end repeat

            repeat with e from 1 to number of items in this_phone

                set this_iphone_item to item e of this_phone
                if this_iphone_item is not {} then
                    copy (this_name) & splitter & value of this_iphone_item as string to end of buddieList
                end if
            end repeat

        end repeat
    end tell

    tell application "Messages" to set text_returned to item 1 of (choose from list buddieList with prompt "TO:" without multiple selections allowed and empty selection allowed)

    set inputAlias to item 1 of input as alias

    set theBuddy to (do shell script "echo  " & quoted form of text_returned & " | awk -F" & splitter & " '{print $2}'")
    tell application "Messages"
        try
            set findBuddy to first buddy whose handle is theBuddy


            send inputAlias to findBuddy
        on error
             display dialog "NO BUDDY Found with " & theBuddy
        end try
    end tell

end run

Он предназначен для включения в действие Run Applescript в Automator. Как услуга. Скопируйте и вставьте его, заменив весь код по умолчанию.

Другие вопросы по тегам