【问题标题】:Detect Mac Application moved to trash folder using launch Agents使用启动代理检测移动到垃圾文件夹的 Mac 应用程序
【发布时间】:2014-02-15 07:32:53
【问题描述】:

当我的应用程序移入垃圾文件夹时,我想运行一个脚本,我知道使用启动代理是可能的,我用谷歌搜索并创建了 plist,但它不工作或不调用脚本..

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.meet.anywhere</string>
    <key>WatchPaths</key>
    <array>
        <string>~/.Trash</string>
    </array>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/eclit/Desktop/DeleteScript.scpt</string>
    </array>
    <key>KeepAlive</key>
    <false/>
</dict>
</plist>

【问题讨论】:

    标签: macos shell applescript launchd


    【解决方案1】:

    launchd 不能直接运行 applescript。您需要使用命令行工具 osascript 来运行 applescript。因此,您的 ProgramArguments 部分应如下所示。此外,不需要 KeepAlive 部分。它没有任何作用,所以我将其删除。

    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/Users/eclit/Desktop/DeleteScript.scpt</string>
    </array>
    

    【讨论】:

    • 非常感谢您的帮助!
    • osascript 正在申请许可,这可能之前获得许可吗??
    • 我现在看到一个问题,即每当有任何东西移动到垃圾箱时,我的脚本就会被调用,我如何才能具体说明何时只有我的应用移动到垃圾箱??
    【解决方案2】:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.meet.anywhere</string>
        <key>WatchPaths</key>
        <array>
            <string>~/.Trash/AppName.app</string>
        </array>
        <key>ProgramArguments</key>
        <array>
        <string>osascript</st
            <string>/Users/eclit/Desktop/DeleteScript.scpt</string>
        </array>
        <key>KeepAlive</key>
        <false/>
    </dict>
    </plist>
    

    【讨论】:

      猜你喜欢
      • 2015-01-23
      • 2019-11-28
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多