2014-02-15 1 views
1

Я хочу запустить сценарий, когда мое приложение переместилось в папку с корзинами, и я узнаю, что с помощью агентов запуска его возможно, я googled и сделал plist, но его не работает или нет позвонив по сценарию ..Обнаружение приложения Mac перемещено в папку мусора с помощью агентов запуска.

<?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> 

ответ

2

launchd не может запустить applescript напрямую. Для запуска applescript вам нужно использовать инструмент командной строки командной строки osascript. Таким образом, ваша часть ProgramArguments должна выглядеть следующим образом. Кроме того, раздел KeepAlive не требуется. Он ничего не делает, поэтому я удалю его.

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

Спасибо вам большое за вашу помощь! – Retro

+0

osascript просит разрешения, это возможно получить разрешение раньше? – Retro

+0

Я вижу теперь проблему, что всякий раз, когда какая-либо вещь перемещается в мусор, мой скрипт получает вызов, как я могу сделать это конкретным, когда только мое приложение переходит в корзину? – Retro

0
<?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>