Russian Qt Forum

Qt => Общие вопросы => Тема начата: yatagan от Январь 14, 2006, 00:35



Название: ShellExecute
Отправлено: yatagan от Январь 14, 2006, 00:35
как в Qt открыть какой-то файл для просмотра с помощью стандартной программы? ну типа .doc .html или .pdf?
использовать winAPI ф-цию
ShellExecute(0, "open", file_name, "", "", SW_SHOW);
не хочется, хочу через Qt...


Название: ShellExecute
Отправлено: Steven_Orko от Январь 14, 2006, 00:59
QProcess?


Название: ShellExecute
Отправлено: yatagan от Январь 14, 2006, 03:43
ну он запускает тока исполняемые, а мне нада все остальные...

в QAssistant про это ничьо нет :(


Название: ShellExecute
Отправлено: Mikhail от Январь 14, 2006, 14:03
Посоветую использовать технологию ActiveX. В Qt работатьь можно с импользованием класса QAxObject. Очень доходчиво приемы работы описаны в статье Синтез QT и Excel.
http://hardclub.donntu.edu.ua/projects/qt/articles/qt-excel.html


Название: ShellExecute
Отправлено: AlexKiriukha от Январь 14, 2006, 15:15
Можно попробовать QProcess с "start index.html". По идеи, start запустит нужное приложение для этого файла.


Название: ShellExecute
Отправлено: yatagan от Январь 14, 2006, 23:58
2Mikhail:
              а как же тогда портируемость в Линух?

AlexKiriukha:
          не работает курва :( Шо же делать?....


Название: ShellExecute
Отправлено: Sergey B. от Январь 15, 2006, 07:27
Цитата: "yatagan"
2Mikhail:
              а как же тогда портируемость в Линух?

AlexKiriukha:
          не работает курва :( Шо же делать?....


еслу уж так нужно можно
#include <windows.h>

и вперёд...
WinExec
ShellExecute


Название: ShellExecute
Отправлено: Steven_Orko от Январь 15, 2006, 07:41
Присоединяюсь к Sergey B:
можно все сделать в дерективах препроцессора. Когда найдешь способ, как это сделать в линукс или другой платформе, добавишь кусочек кода...


Название: ShellExecute
Отправлено: Mikhail от Январь 15, 2006, 21:18
Для yatagan:
О портируемости можно говорить, при решении некоторых стандартных, не зависящих от платформы задач. Например работа с портами ввода-вывода, форматами XML и т.п. Вопрос был задан о возможностях открытия файлов определенных типов. Когда говорят о *.doc, то подразумевают WinWord, следовательно о запуске Word и открытии в нем файла. Какая уж здесь кроссплатформенность. Если ставить вопрос о кросплатформенности, то либо изучи формат требуемого файла и напиши кроссплаформенную программу, либо в зависимости от платформы, как писал Sergey B., вызывай сответствующую программу. Например, Word либо OpenOffice.


Название: ShellExecute
Отправлено: Dendy от Январь 16, 2006, 10:44
2 Mikhail
ТьІ немного не понял. Ему как раз и не нужна конкретная программа, а программа по-умолчанию, которая зарегистрирована для системьІ для етих типов файлов. Когда говорим о .doc - подразумеваем программу, которой пользователь настроил открьІвать ети файльІ. Предсказать программу невозможно.

Думаю, если бьІ такой полностью кроссовьІй механизм бьІл - Тролли его бьІ ужо забецали. Иначе... #ifdef #else


Название: ShellExecute
Отправлено: Mikhail от Январь 16, 2006, 20:03
Вот бы интересно узнать какой механизм используется в Linux для регистрации в системе программ по умолчанию для открытия файлов по расширению.