Я хотел бы сфокусировать файл .exe (более конкретно консольное приложение) на одну функционирующую программу, которая впервые запустила его, но когда выполняется второй раз (пока первый существует), он может превратить фокус в первая запущенная программа. Возможно ли это вообще в Qt?Приложение одного экземпляра в Qt
6
A
ответ
9
Для примера см. Run only one instance of a Qt application.
Не считая переносимости, если вы работаете в Windows, другой общий подход заключается в создании named pipe (или named mutex) при запуске приложения и уничтожении его перед выходом. Если именованный канал уже существует, другой экземпляр уже запущен. Вы даже можете записать в именованный канал, попросив другой экземпляр перенести его окно на передний план, хотя консольное приложение может не воспользоваться этим.
Другой способ фокусировки существующего экземпляра, чтобы найти окно уже запущенного экземпляра, затем вызовите SetFocus на ИТС HWND
или соответствующей функции на вашей платформе.
Смежные вопросы
- 1. максимизация уже запущенного экземпляра одного экземпляра приложения в qt
- 2. Реализация экземпляра экземпляра одного слоя
- 3. Применение одного экземпляра wxWidgets
- 4. Реализация одного экземпляра входа
- 5. Доступ к переменной экземпляра экземпляра из одного экземпляра в другой
- 6. одного экземпляра класса в JavaScript
- 7. CloseEvent Qt из класса экземпляра
- 8. QT Как встроить приложение в виджет QT
- 9. AWS избыточности для одного экземпляра
- 10. Запуск одного экземпляра из приложения
- 11. Обнаружение одного экземпляра сборника
- 12. два экземпляра одного редактора
- 13. Получение одного экземпляра объекта
- 14. Служба одного экземпляра
- 15. Найти запущенное приложение clickonce для развертывания одного экземпляра?
- 16. Приложение, имеющее поведение одного экземпляра и нескольких экземпляров
- 17. Binaryton - два экземпляра одного объекта
- 18. Приложение QT, запускающее другое приложение в OSX
- 19. Изменение идентификатора экземпляра Qt при каждом запуске
- 20. Более одного экземпляра в фильтре намерения
- 21. Использование одного экземпляра класса viewController в Storyboard
- 22. Приложение Qt не запускалось в ПК без QT (используется windeployqt)
- 23. Приложение QT Console в Lubuntu
- 24. Emacs встроен в приложение Qt
- 25. сверху приложение Qt в окнах
- 26. Приложение QT Autostart --- в linux
- 27. Распространять приложение QT в linux
- 28. Первое консольное приложение в Qt
- 29. Добавление одного экземпляра в связанный список другого экземпляра
- 30. одного экземпляра apscheduler в приложении Колба
Большое спасибо, но я не получил проблему с именем _named_pipe_. – elgolondrino
Вы вызываете ** [CreateNamedPipe] (http://msdn.microsoft.com/en-us/library/aa365150) ** для создания именованного канала, и если он терпит неудачу (возвращаемое значение - INVALID_HANDLE_VALUE), это означает другой экземпляр уже создал канал с тем же именем, поэтому вы знаете, что еще один экземпляр уже запущен. – jweyrich