代码之家  ›  专栏  ›  技术社区  ›  Jens Kohl

在另一个AppleScript中导入AppleScript方法?

  •  20
  • Jens Kohl  · 技术社区  · 14 年前

    是否有一种方法可以在其他引用原始applescript的applescript中使用与import类似的定义applescript方法(例如在php中)?

    我写了一个设置Skype状态和心情文本的方法:

    on setSkypeStatus(status, mood_text)
        tell application "System Events"
            set skypeRunning to count (every process whose name is "Skype")
    
            if skypeRunning > 0 then --only set status if skype is running
                tell application "Skype"
                    set myStatus to "SET USERSTATUS " & status
                    set myMood to "SET PROFILE MOOD_TEXT " & mood_text
    
                    send command myStatus script name "AppleScript"
                    send command myMood script name "AppleScript"
                    return skypeRunning
                end tell
            else
                return skypeRunning
            end if
        end tell
    end setSkypeStatus
    

    现在我在找类似的东西 导入Skype\u方法.scpt . 有这样的功能吗?我和谷歌没有关系。

    4 回复  |  直到 7 年前
        1
  •  22
  •   sakra    14 年前

    将另一个脚本作为库导入的一种方法是定义一个属性,该属性通过将库作为脚本对象加载来初始化。然后您可以使用 tell 调用库函数的命令。

    property pSkypeLibrary : load script POSIX file "/Users/sakra/Desktop/skype_methods.scpt"
    
    tell pSkypeLibrary
        setSkypeStatus("status", "mood")
    end tell
    
        2
  •  3
  •   Philip Regan    14 年前

    脚本 Foo.scpt

    set theBar to "path:to:Bar.scpt" as alias
    run script (theBar)
    

    脚本 Bar.scpt

    display dialog "Bar"
    

    结果: 显示“栏”的窗口

        3
  •  2
  •   smizzlov    9 年前

    这样做有一种更优雅的方式。您可以将Skype_methods.scpt文件保存到计算机上的脚本库文件夹中。

    根据您希望如何定义此库的可用性,可以使用其他文件夹。

    • 将skype_methods.scpt文件放入 /Library/Script Libraries 文件夹,使其可供计算机上的所有用户使用。
    • 把它放在 ~/Library/Script Libraries 文件夹,使其仅对特定用户可用。

    然后可以使用该库中的所有处理程序,如下所示:

    property Skype : script "skype_methods"
    Skype's setSkypeStatus("status","mood")
    

    这可以防止在使用不同库中的处理程序时需要大量的指示块。

        4
  •  0
  •   onmyway133    7 年前

    你可以按照这个回购协议 https://github.com/abbeycode/AppleScripts 将脚本组织到库中

    下面是一个例子 https://github.com/abbeycode/AppleScripts/blob/master/Scripts/Download%20Chase%20Activity.applescript

    property LibLoader : load script file ((path to scripts folder from user domain as text) & "Libraries:Library Loader.scpt")
    property TransmissionLib : LibLoader's loadScript("Libraries:Transmission.applescript")
    property GrowlLib : LibLoader's loadScript("Libraries:Growl.applescript")
    property SafariLib : LibLoader's loadScript("Libraries:Safari.applescript")
    property DatesLib : LibLoader's loadScript("Libraries:Dates.applescript")