Czy można powiązać dwie aplikacje, aby jedna otwierała lub zamykała drugą?

1

Czy można skonfigurować wyzwalacze, aby po uruchomieniu „aplikacji A” automatycznie uruchomiła się kolejna „aplikacja B”? Najlepiej byłoby, gdyby rozwiązanie wysyłało komunikat „zamknij” do „App B”, gdy „App A” zakończy działanie, ale ważną częścią jest sekwencja uruchamiania.

Tomek
źródło

Odpowiedzi:

1

Zapisz taką listę jak ~/Library/LaunchAgents/test.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>test</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <string>while sleep 5; do
  if pgrep -x Preview; then
    pgrep -x TextEdit || open -jga TextEdit
  else
    pgrep -x TextEdit &amp;&amp; osascript -e 'quit app "TextEdit"'
  fi
done</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

Następnie załaduj plist za pomocą launchctl load ~/Library/LaunchAgents/test.plistlub, wylogowując się i ponownie logując.

open -jgma otwierać aplikację ukrytą i bez podnoszenia okien. W przypadku niektórych aplikacji opartych na dokumentach, takich jak TextEdit, otwiera nowe widoczne okno, jeśli aplikacja jest otwarta, ale nie ma widocznych okien.

pgrepa -jopcja dla openzostała dodana w 10.8. Ta -jopcja jest wyświetlana tylko w komunikacie pomocy, a nie na stronie podręcznika.

Lri
źródło