Russian Qt Forum
Ноябрь 25, 2024, 15:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QProcess - открытие файла  (Прочитано 9022 раз)
zosia
Гость
« : Март 10, 2009, 00:56 »

Hello all.

Есть вопрос, как открыть mp3 файл в программе по умолчанию?
т.е.
Код
C++ (Qt)
QString filename="C:\some\Artist - Song.mp3";
QProcess::execute("cmd /c start winamp.exe \""+filename+"\"");
Откроет файл в WinAmp'е..  а если WinAmp'а нету? Или пользователь слушает музыку в другой программе и поставил ассоциироваться mp3 файлы с ней? Как открыть по умолчанию?

Код
C++ (Qt)
QProcess::execute("cmd /c start \""+filename+"\"");

- открвает черное окно - Command Prompt и всё...
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Март 10, 2009, 01:04 »

QDesktopServices::openUrl() ? В винде на худой конец можно и ShellExecute()
Записан
zosia
Гость
« Ответ #2 : Март 10, 2009, 01:32 »


Так вроде QDesktopServices::openUrl() только для файлов (url) в сети?
И как можно открыть локальный файл с помощью ShellExecute?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Март 10, 2009, 01:42 »

1) http://en.wikipedia.org/wiki/URL

2) могу напутать, на винде давно не писал:
Код:
ShellExecute(0, "OPEN", "c:\1.wav", "", "", 0);
Записан
zosia
Гость
« Ответ #4 : Март 10, 2009, 01:48 »

спасибо.

блин, 2 часа в гугле ни к чему не привели...
помогло следующее:

Код
C++ (Qt)
QProcess::execute("cmd /c \""+filename+"\"");
 

т.е. просто убрали START...
Записан
zosia
Гость
« Ответ #5 : Март 10, 2009, 02:25 »

теперь ясно про Qurl)
т.е. лучше всё таки это сделать с QDesktopServices

вот так:

Код
C++ (Qt)
filename = filename.replace(QString(" "),QString("%20"));
QUrl url("file:/"+filename);
QDesktopServices::openUrl(url);
 

 Строит глазки
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Март 10, 2009, 03:05 »

QUrl::fromLocalFile()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.117 секунд. Запросов: 22.