Russian Qt Forum

Qt => Общие вопросы => Тема начата: Anarion от Май 29, 2010, 17:22



Название: QDesktopServices::openUrl проблемы с запуском приложения.
Отправлено: Anarion от Май 29, 2010, 17:22
Здравствуйте.
Ситуация следующая: хочу записывать в некотором контейнере, например QStringList sList полные пути к файлам на дисках. Затем через QDesktopServices::openUrl(QUrl::fromLocalFile(sList)) запускать их. Для обычных файлов/папок/ярлыков проблем нет. Проблема возникла с файлами *.exe.
При запуске этой команды для *.exe файла в некоторых случаях возникают ошибки. Как я понял, они вызваны тем, что фактически среда не определяет рабочую папку приложения и оно не может найти файлы.

Например. Если создать ярлык на такой exe-файл приложения, то приложение корректно запустится только если в ярлыке правильно указана рабочая папка.

Здесь уже писали, что под виндой все сводится к запуску ShellExecute. Но все таки спрошу. Можно ли средствами Qt реализовать запуск подобных приложений? Хочу запускать приложения непосредственно через файл, а не через ярлык на них (*.lnk в винде).

Сам могу предположить (скорее всего ошибочных, ибо не силен в подобных вопросах:) ) в момент запуска временно изменить путь к моему приложению, нечто типа applicationFilePath. Только сомневаюсь в возможности и целесообразности этого.

Заранее благодарен.


Название: Re: QDesktopServices::openUrl проблемы с запуском приложения.
Отправлено: lit-uriy от Май 29, 2010, 19:15
Для запуска exe используй QProcess, перед запуском можно текущий каталог сменить.


Название: Re: QDesktopServices::openUrl проблемы с запуском приложения.
Отправлено: Anarion от Май 30, 2010, 01:59
Спасибо большое. Как выяснилось, при изменении текущего каталога через QDir::setCurrent() можно даже обойтесь все тем же QDesktopServices::openUrl.