Я разрабатываю приложение в какао, которое необходимо проверить, запущено ли это приложение при запуске. Если он уже запущен, мне нужно выйти из нового экземпляра. Есть ли способ сделать это ..Посмотреть идеальное решениеПроверьте, запущено ли приложение уже запущено
ответ
Похоже, вы говорите, что хотите сохранить несколько экземпляров вашего приложения для какао в одно и то же время. Обычно приложения для какао не позволяют запускать несколько экземпляров одновременно, поэтому вам не нужно будет выполнять эту проверку. Есть ли какое-то конкретное обстоятельство, в котором вы находите, что приложение какао запускается одновременно?
В общем, способ какао решить этот взгляд на launchApplications в NSWorkspace. Это возвращает NSArray, содержащий словарь для каждого запущенного приложения. Вы можете пройти через массив, чтобы узнать, работает ли приложение, которое вы ищете. Я бы посоветовал использовать значение с ключом NSApplicationBundleIdentifier, который будет иметь значение, например «com.mycompany.myapp», а не искать имя. Если вам нужно найти идентификатор пакета для приложения, вы можете посмотреть его файл info.plist в пакете приложений.
Мой ответ здесь не относится к реализации объекта-c, а как к общему подходу. В системах типа * nix демона обычно создают файл pid где-то, чтобы указать на его существование. Если демон не разрешает несколько экземпляров, то другой огонь приложения должен сначала проверить, существует ли такой файл pid, если он существует, сам.
Стоит отметить что этот ответ применим только к демонам, а не к фактическим приложениям. Более того, это не относится к демонам специально для Mac OS X; рекомендуемым способом является проверка с помощью startd. http://developer.apple.com/technotes/tn2005/tn2083.html –
Хотя я использовал слово «демон», шаблон файла pid не должен быть ограничен для демона одного экземпляра. В пользовательских интерактивных приложениях, как правило, он реализуется через .lockfile в профиле приложений. Он почти служит той же цели, что и pidfile daemon. Спасибо за ссылку. Launchd рекомендуется и выглядит так, как будто все зависит от того, как указать конфигурацию. Но я все еще заблокирован, чтобы увидеть, где он гарантирует, чтобы предотвратить запуск нескольких экземпляров. – jimx
вы можете открыть() экземпляр команды ps и найти имя приложения. если вы его найдете, выключите новый. возможно, это не самый быстрый способ, но он работает :-)
- 1. Проверьте, запущено ли приложение или запущено тестирование
- 2. Проверьте, не запущено ли приложение
- 3. Проверьте, какое приложение запущено?
- 4. Проверьте, как приложение было запущено?
- 5. Проверьте, было ли приложение запущено веб-браузером
- 6. Проверьте, запущено ли приложение из Visual Studio
- 7. Java - проверьте, запущено ли еще приложение Java
- 8. VB6, проверьте, запущено ли приложение в сети
- 9. Android - Определите, запущено или запущено приложение, нажмите
- 10. Активация GPS, когда приложение уже запущено
- 11. Обнаруживать, запущено ли другое приложение
- 12. Проверьте, запущено ли действие в службе
- 13. Как проверить намерение уже запущено?
- 14. Проверьте, не запущено ли завершение или нет
- 15. Как определить, уже запущено ли приложение OS X
- 16. Кордова - проверьте, было ли только что запущено приложение
- 17. Проверьте, запущено ли электронное приложение с правами администратора на окнах
- 18. Проверьте, было ли приложение активировано из-за RemoteNotification (приложение уже запущено)
- 19. Как проверить, что приложение на сервере запущено и запущено?
- 20. (Android) обнаруживает, когда запущено/запущено другое приложение для всего приложения
- 21. Обнаруживает, запущено ли другое приложение для Chrome
- 22. Определите, запущено ли приложение ASP.NET локально
- 23. Узнайте, было ли приложение запущено до
- 24. Определите, было ли приложение запущено щелчком мыши?
- 25. Как проверить, запущено ли приложение внутри контейнера
- 26. Как определить, запущено ли приложение COM?
- 27. Знайте, запущено ли будущее
- 28. Как было запущено мое приложение?
- 29. handleActionWithIdentifier, когда приложение не запущено
- 30. Сколько экземпляров консольных приложений уже запущено
Тот же вопрос, что и http://stackoverflow.com/questions/1081218/ideal-way-to-single-instance-apps-on-the-mac? – smorgan
Этот идентичный вопрос имеет лучший ответ: [link] (http://stackoverflow.com/questions/684911/how-to-detect-whether-an-os-x-application-is-already-launched) –