Задать вопрос

Как сделать чтобы программа не запускала процес на каждый аргумент, а запускала один процес на все аргументы?

Я написал MP3 Player на QT C++ и забилдил его. Когда я выделяю аудио и перетаскиваю на .exe программы она обрабатывает каждое аудио(тоесть воспроизводит и тд), но когда я выделяю эти файлы и способом "открыть с помощью" и выбираю свою програму, у меня на каждое аудио открывается по процессу и обрабатывает только его. Мне же нужно, чтобы открывался только один процес и обрабатывал эти аудио.

Этим кодом обробляю аргументы:
if (argc > 1)
    {

        for (int i = 1; i < argc; ++i) {
            QString url = QString::fromLocal8Bit(argv[i]);
//здесь просто с помощью метода добавляется в очередь трек
            w.addMediainPlaylist(url);
        }
        MainWindow::AudioPlayStatus status = MainWindow::THISorMAIN;
//а здесь уже начинается воспроизвидение
        w.PlayAudio(w.getPlaylist(),status);

    }
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Mercury13
Программист на «си с крестами» и не только
Под Windows это делается через DDE.
Штука сильно устаревшая, однако осталась именно на это — поддержку нескольких файлов через файловый менеджер.
Ответ написан
@kalapanga
Ваша программа сейчас может только взять и воспроизвести.
А теперь, как примерно должно выглядеть то, чего Вам не хватает. Программа, прежде чем воспроизводить переданный ей в параметрах файл, должна проверить, а не запущен ли уже другой её экземпляр? И если запущен, то не воспроизводить файл сама, а добавить его уже существующему экземпляру в плейлист, после чего тихо закрыться. Функции "передать файл в плейлист" и "получить файл для добавления в плейлист" надо придумать и реализовать. Это уже другой вопрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы