Использую qsharedmemory для инициализации только одного экземпляра программы. При повторном вызове приложение запускается с аргументом, имя открываемого файла, этот аргумент нужно передать в тот единственный экземпляр.
Яков Е, так, словами попытаюсь объяснить. У меня есть приложение, оно открывает файлы. Это приложение можно запустить и выбрать через него файл, либо открыть файл через это приложение "Открыть с помощью", что равносильно запуску из cmd с параметрами. Так вот, вся проблема с чего началась, есть главное меню, где выбирается файл и создаётся отдельное окно в котором происходит взаимодействие с файлом. То есть, если открывать много файлов через cmd, то создается столько же и главных окон (меню). Сейчас я сделал, чтобы создавался только один экземпляр; запускается приложение, проверяет, есть ли экземпляр и, если есть, то просто предупреждение, что уже запущено. Но нужно еще передать этому запущенному экземпляру имя открываемого файла, который в аргументе указан при запуске приложения. Думаю суть объяснил
maaGames, можно и через shared memory. А вообще, для таких целей есть QSingleApplication, который немного доработав, позволит передавать аргументы командной строки другому приложению.
Александр Ананьев, а можно пример с shared memory? Я примерно понял как писать и читать в shared memory, но я не понимаю как слушателя повесить на изменение в нем, не ставить же на него таймер с проверкой каждую секунду. Поэтому и озадачился насчет "сигнала" какого-нибудь, который отследить можно.