Как заставить только один экземпляр моего приложения?
Я разрабатываю программу, используя быстро. Я использую индикатор, который может скрыть / показать главное окно.
Но когда я запускаю приложение из панели запуска, он запускает новый экземпляр этого приложения (поэтому будет показан дополнительный индикатор). Вместо того, чтобы просто показывать главное окно предыдущего запущенного приложения.
Какой обычный способ заставить только один индикатор?
2 ответа
Во-первых, убедитесь, что у вас есть веская причина для этого. Люди ожидают, что приложения будут работать так, как вы описали в своем посте. Даже если вам лично это может не понравиться.
Но, чтобы ответить на ваш вопрос, одним из самых простых способов сделать это является создание файла (например, в каталоге конфигурации) при запуске, который вы удаляете при выходе из приложения. Перед запуском приложения вы проверяете свой код, если другой экземпляр уже активен, и если это так, вы выходите напрямую. Если вы также хотите сфокусировать активное приложение, вам нужен способ межпроцессного взаимодействия. Например через сокет. См. http://docs.python.org/library/ipc.html для получения дополнительной информации.
Я нашел еще лучшее решение (хотя и немного сложнее). Вы можете не только проверить, запущен ли ваш процесс, но и предоставить некоторые данные, если он уже запущен. Пожалуйста, проверьте это решение.