Russian Qt Forum
Ноябрь 23, 2024, 00:00
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Список всех инстанций приложения
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Список всех инстанций приложения (Прочитано 17798 раз)
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Список всех инстанций приложения
«
:
Май 22, 2017, 10:57 »
Всем привет,
казалось бы простая вещь, но или я туплю, или в Qt такого нету...
Надо просто получить список всех запущенных инстанций текущего приложения.
Если ли мультиплатформенное решение или под каждую ось придется свой велик ваять?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Список всех инстанций приложения
«
Ответ #1 :
Май 22, 2017, 11:11 »
Нет такого. А как ты задетектишь? Запущенное из разных каталогов это одно и то же? Разные сборки одного приложения это одно и то же?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Список всех инстанций приложения
«
Ответ #2 :
Май 22, 2017, 11:20 »
Цитата: Пантер от Май 22, 2017, 11:11
Запущенное из разных каталогов это одно и то же? Разные сборки одного приложения это одно и то же?
Тут, конечно, могут быть варианты - но для простоты пусть хотя бы будет "одна инстанция = один и тот же путь запуска".
Предполагается, что приложение может быть проинсталлировано у пользователя только в единственном варианте.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: Список всех инстанций приложения
«
Ответ #3 :
Май 22, 2017, 11:26 »
Мне в голову лезет сложное решение с http-сервером, к которому приложения при запуске присылают команду с их полным путем (включая exe'шник), а сервер время от времени проверяет среди процессов их
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Список всех инстанций приложения
«
Ответ #4 :
Май 22, 2017, 11:36 »
Цитата: gil9red от Май 22, 2017, 11:26
Мне в голову лезет сложное решение с http-сервером, к которому приложения при запуске присылают команду с их полным путем (включая exe'шник), а сервер время от времени проверяет среди процессов их
https://static.seekingalpha.com/uploads/2016/2/41873736_14561743352441_rId5.png
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Dimka Novikov
Гость
Re: Список всех инстанций приложения
«
Ответ #5 :
Май 22, 2017, 11:38 »
Посмотрите в сторону qtsingleapplication.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Список всех инстанций приложения
«
Ответ #6 :
Май 22, 2017, 11:40 »
Придется самому реализовывать. Пробежать по процессам и сравнить пути.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Список всех инстанций приложения
«
Ответ #7 :
Май 22, 2017, 11:41 »
Цитата: Dimka Novikov от Май 22, 2017, 11:38
Посмотрите в сторону qtsingleapplication.
У ТС задача не один инстанс создать, а узнать количество инстансов.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Dimka Novikov
Гость
Re: Список всех инстанций приложения
«
Ответ #8 :
Май 22, 2017, 11:44 »
Цитата: Пантер от Май 22, 2017, 11:41
У ТС задача не один инстанс создать, а узнать количество инстансов.
Я имел в виду сделать аналогично, но только не запрещать запуск, а делать подсчёт запущеных копий.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Список всех инстанций приложения
«
Ответ #9 :
Май 22, 2017, 11:47 »
На сколько я помню, там через пайп работает, то есть, только 2 экземпляра могут общаться друг с другом.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Список всех инстанций приложения
«
Ответ #10 :
Май 22, 2017, 11:49 »
Ближайший аналог желаемого - MS-Office или Inkscape.
Открытие файла создает новую инстанцию (независимую от первой).
Но каждая инстанция имеет менюшку Windows, где перечислены все остальные (и можно переключаться между ними).
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Список всех инстанций приложения
«
Ответ #11 :
Май 22, 2017, 11:56 »
Как вариант - каждый инстанс создает в определенном каталоге файл, имя которого - пид процесса. При закрытии файл удаляется. Чтобы построить менюшку тебе надо получить файлы из каталога. но нужно проверить существует ли такой процесс и удалить файл, если не существует.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Dimka Novikov
Гость
Re: Список всех инстанций приложения
«
Ответ #12 :
Май 22, 2017, 12:00 »
Кажется можно больше двух.
https://github.com/itay-grudev/SingleApplication
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Список всех инстанций приложения
«
Ответ #13 :
Май 22, 2017, 13:42 »
Цитата: Racheengel от Май 22, 2017, 10:57
Если ли мультиплатформенное решение или под каждую ось придется свой велик ваять?
Через QSharedMemory нормально получается. Ключ - проще всего полный путь исполняемого файла
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Список всех инстанций приложения
«
Ответ #14 :
Май 22, 2017, 14:20 »
UDP запрос локалхосту, все другие инстанции отвечают на него.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...