0

我希望能够在我的桌面上选择一个项目并键入一个快捷方式,以将所选项目附加到使用消息应用程序的新消息中。我尝试在 Finder.app 下的系统偏好设置/键盘/键盘快捷键/应用程序快捷方式中创建一个,键入“共享>消息”,但它没有用。我有一个使用 automator 创建的“带有选择的新电子邮件”的快捷方式,但 Messages 不是一个选项。我还尝试为此搜索 Applescript 或终端命令,以便我可以使用 Better Touch Tool 通过滑动手势来完成。我与一位 Apple 高级顾问交谈过,他说他也不知道该怎么做,也不会在论坛上发布。

如果有人知道如何为此操作创建快捷方式,请告诉我。

更新:我从 /System/Library/PrivateFrameworks/ShareKit.Framework/Versions/A/Plugins/Message s.sharingservice/Contents/MacOS 复制了这个

如果有人知道这条线是否可以用 automator 变成 .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 设置为“单击应用程序进程 \"Finder\"" 的滚动区域 1 组 1 的图像 \"Test File\" 我的 doWithTimeout(uiScript, timeoutSeconds)

-- 消息延迟 0.263641 将 timeoutSeconds 设置为 2.000000 将 uiScript 设置为“单击应用程序进程 \"Finder\" 的滚动区域 1 的组 1 的菜单 1 的菜单项 \"Share\" 的菜单 1 的菜单项 \"Message\" " 我的 doWithTimeout(uiScript, timeoutSeconds)

在 doWithTimeout(uiScript, timeoutSeconds) 上将 endDate 设置为(当前日期)+ timeoutSeconds 重复尝试运行脚本“告诉应用程序\“系统事件\”“& uiScript &“结束告诉”退出重复错误errorMessage if ((当前日期) > endDate ) 然后错误“Can not” & uiScript end if end try end repeat end doWithTimeout

4

1 回答 1

0

我看不出如何让那些运行。

您可以设置 Automator 服务,并将其输入设置为“Finder”中的文件和文件夹

并在运行 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

它旨在放入 Automator 中的 Run Applescript Action 中。作为一项服务。复制并粘贴它以替换所有默认代码。

在此处输入图像描述

于 2012-12-13T19:36:28.727 回答