crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Открытие своего файла в своей программе
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
RazrFalcon Дата 2.6.2010, 18:24
  Хмммм... Весьма странно но теперь работает :huh:
QSettings reg("HKEY_CLASSES_ROOT", QSettings::NativeFormat);
QFile file(reg.value("/MyProg.mpf/shell/open/command/.").toString());
if (!file.open(QIODevice::ReadWrite | QIODevice::Text))
   return;

MoPDoBoPoT дал полезную ссылку, спасибо.
Только все равно как то странно, по этому пути в реестре пусто ведь, все время, сам проверял.
Но путь пишет и открывает, а мне большего и не нужно.
Все спасибо за еще один шаг вперед.
Litkevich Yuriy Дата 2.6.2010, 17:58
 
Цитата(RazrFalcon @ 2.6.2010, 21:31) *
Без командных строк и тп
на самом деле всё работает через командную строку

Цитата(RazrFalcon @ 2.6.2010, 21:31) *
КАК он узнал какой файл открыть?
в реестре записано
HKEY_CLASSES_ROOT\.txt
-- (по умолчанию) = txtfile

HKEY_CLASSES_ROOT\txtfile
-- (по умолчанию) = Текстовый документ

HKEY_CLASSES_ROOT\txtfile\shell\open\command
-- (по умолчанию) = %SystemRoot%\system32\NOTEPAD.EXE %1

И, как видишь, командная строка, аргумент командной строки - шаблон, вместо которого подставится имя файла
RazrFalcon Дата 2.6.2010, 17:31
  Не то, не то, не то.
В программе я могу сделать, и сделано в принципе, нажал кнопку открылся/сохранился файл (путь указан статически или вводится)
Могу и по типу "Открыть/Сохранить как": нажал кнопку-> открылся диалог-> выбрал файл/путь -> прога открывает/сохраняет файл.
Но вот задача:
Я на рабочем столе, к примеру, имею файл с расширение .primer, допустим. И хочу его открыть. Дважды на нем клацаю и открывается моя прога и в нее передается путь и файл на который я клацал тут же открывается. Без командных строк и тп. При условии конечно что у меня установлена аасоциация с моей прогой, но даже без этого оно спросит какой прогой открыть и я выберу свою.
Вроде бы все. Может что-то еще уточнить?
Пример: клацнул по текстовику и открылся блокнот, КАК он узнал какой файл открыть?
Litkevich Yuriy Дата 2.6.2010, 16:53
  RazrFalcon, тут нужно с задачей (вопросом) определится точнее:
1) Как открыть файл данных некой программой из командной строки?
2) Как открыть файл данных из самой программы (как пользоваться QFileDialog)?

Ответы
1) файл данных передаётся как аргумент командной строки программы, этот аргумент можно получить из функции main или через QCoreApplication::args()

2) Смотри пример %QTDIR%\examples\dialogs\standarddialogs, там ты узнаешь как получить полное имя файла (вместе с путём), это имя передаёшь в конструктор QFile
RazrFalcon Дата 2.6.2010, 16:32
 
Цитата(Litkevich Yuriy @ 2.6.2010, 16:06) *
Цитата(RazrFalcon @ 2.6.2010, 19:25) *
двойном клике по .blend .max .txt
а клик-то где? В файловом менеджере?

Ну да, в проводнике или на рабочем столе хоть. Ну даже пусть в тотал командере, которым в принципе не пользуюсь.
QFileDialog или как-то так это работает, нажал кнопку, выбрал файл и он открылся, а вот как впихнуть в QFile путь к файлу открытому мной, так скажем. Все остальные мало-мальские проги это делают.
Соответствие ставить пробовал, толку 0. Просто прога по нажатии открывается и все, без файла.

Цитата(MoPDoBoPoT @ 2.6.2010, 16:29) *

Ну я это делал просто через "Открыть с помощью" -> Использовать всегда только эту программу. Прога запустилась но без файла опять же.
MoPDoBoPoT Дата 2.6.2010, 16:29
  Это что ли?
Как ассоциировать файлы со своим приложением в Windows
Litkevich Yuriy Дата 2.6.2010, 16:06
 
Цитата(RazrFalcon @ 2.6.2010, 19:25) *
двойном клике по .blend .max .txt
а клик-то где? В файловом менеджере?
RazrFalcon Дата 2.6.2010, 15:25
 
Цитата(Litkevich Yuriy @ 2.6.2010, 15:08) *
Цитата(RazrFalcon @ 1.6.2010, 23:53) *
и по нажатии на него
это что имеется в виду?

Имеется в виду что при двойном клике по .blend .max .txt и тд и тп открываются соответствующие приложения и соответственно "нажимаемый файл тоже", как это реализовать со своей прогой и своим форматом, да и с другим тоже.
Грубо говоря надо передать проге путь к файлу на который кликаем.
Litkevich Yuriy Дата 2.6.2010, 15:08
 
Цитата(RazrFalcon @ 1.6.2010, 23:53) *
и по нажатии на него
это что имеется в виду?
RazrFalcon Дата 1.6.2010, 19:53
  Прога сохраняет к примеру .prm и по нажатии на него открывается моя прога и в ней открывается сразу же и файл.
Как это сделать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:20