Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Запуск обработки файла при нажатии на него


Автор: Yogurt 25.7.2011, 10:22
Здравствуйте, всем
Есть аппарат, обрабатывающий данные с датчиков и создающий из всех поступивших данных определённую файл-структуру.
Есть программа, которая обрабатывает этот файл, показывает графики, статистику, в общем полный анализ
Как сделать, чтобы при нажатие на файл данных (расширения .bin и .dat), программа запускалась, и в неё передавался полный путь к файлу.
Второй вопрос, коррелирующийся с первым, - чтобы при нажатии на файл правой кнопки мыши, в выпадающем списке появился пункт запуск программы и передачи в программу полного пути к файлу

P.S. Среда разработки - VS

Автор: volatile 25.7.2011, 13:12
Вообщето это делается средствами ОС. 
Нажимаете шифт и правую кнопку мыши на файле. "open with" (или "open" если у файла нет ассоциаций)
Выбираете вашу программу, ставите галочке "Always use selected program ..."

Автор: Yogurt 25.7.2011, 16:26
Да, вручную это можно сделать. Но, когда я выполнил эти действия, подгружаемые файлы, которые лежат рядом с экзешником, стали мне недоступны.

Меня интересует, как автоматизировать этот процесс. На сколько я понимаю, это всё прописывается где-то в реестре. Как это делается программно?

Автор: volatile 26.7.2011, 00:12
Цитата(Yogurt @  25.7.2011,  16:26 Найти цитируемый пост)
Как это делается программно? 

Щас посмотрю...
программно нужно прописать в реестр ключ

Код

[HKEY_CLASSES_ROOT\.eee\shell\open\command]
@="\"C:\\dir1\\dir2\\dir3\\proga.exe\" \"%1\""


где .eee <- это ваше расширение
C:\\dir1\\dir2\\dir3\\proga.exe <- путь к вашей программе.


Автор: Yogurt 26.7.2011, 10:28
Спасибо

А как сделать, чтобы по щелчку правой кнопки мыши в выпадающем списке появлялась возможность отправить в программ

P.S. Дело в том, что программ несколько, и надо выбрать, какой из них открыть файл

Автор: volatile 26.7.2011, 13:22
Yogurt, есть несколько путей решения.
1. Сложный. Написание своего плагина для вин.експлорера. Решает любое самое прихотливое ваше желание. Если вы решили писать его, то и тему надо соответственно назвать. Скажу честно, я не специалист по таким плагинам.

2. Простой. Правка реестра с целью добавить несколько программ в список "open with" 
Но это уже вопросы не связанный никак с С/С++
Я могу конечно поискать на форумах посвященных Windows разные трюки реестра, но лучше если вы сделаете это сами. Как вариант, посмотрите в реестре как это сделано у других расширений, и сделайте аналогично.


Автор: RastaDja 26.7.2011, 14:14
Цитата(Yogurt @  26.7.2011,  11:28 Найти цитируемый пост)
А как сделать, чтобы по щелчку правой кнопки мыши в выпадающем списке появлялась возможность отправить в программ

смотрите в сторону Windows Shell 

Автор: cvid 5.8.2011, 15:47
Цитата

А как сделать, чтобы по щелчку правой кнопки мыши в выпадающем списке появлялась возможность отправить в программ


[HKEY_CLASSES_ROOT\*\shell\Открыть в моей проге]
@=""

[HKEY_CLASSES_ROOT\*\shell\Открыть в моей проге\command]
@="myprogram.exe %1"

и будет вам счастье)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)