![]() |
|
|
![]()
|
|
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Добрый всем день.
Собственно вопрос в чем. Создал SDI программу. Создал для нее инсталяцию. В реестр прописал строки, для того, чтобы Винда определяла принадлежность файлов создаваемых моей программой. HKEY_CLASSES_ROOT 1) .xxx -> XXX-File 2) XXX-File\DefaultIcon\-> Путь\myicon.ico XXX-File\shell\Open\command\ -> Путь\myprogramm.exe "%1" После инсталяции Винда видит принадлежность файлов с расширением *.xxx. Собственно вопрос в чем. При открытии файлов через программу - вопросов нет- все четко открывается. Но если пытаюсь открыть файл без запущенной программы (например двойным кликом мыши по файлу с расширением *.xxx), просто запускается моя программа не принимая значения сохраненные в файле и имя файла. Т.е. запускается просто программа. Что делать, как быть, посоветуйте. |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Копай в сторону CWinApp::ParseCommandLine
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Andrey44 Thanks
|
|||
|
||||
| Proletariy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Andrey44 подскажи пжл.
Не могу понять как получить информацию, открываем ли мы файл, либо просто стартуем приложение:
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen) не срабатывает на запуск программы через открытие файла???? |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Отнаследоваться от класса CCommandLineInfo и перекрыть метод ParseParam():
virtual void ParseParam( LPCTSTR lpszParam, BOOL bFlag, BOOL bLast ); The framework calls this function to parse/interpret individual parameters from the command line. CWinApp::ParseCommandLine calls ParseParam once for each parameter or flag on the command line, passing the argument to lpszParam. If the first character of the parameter is a ‘-’ or a ‘/’, then it is removed and bFlag is set to TRUE. When parsing the final parameter, bLast is set to TRUE. После этого воспользоваться в InitInstance() методом CWinApp::ParseCommandLine(), куда передать ссылку на созданный экземпляр потомка CCommandLineInfo. Кроме GetCommandLine() тот же результат можно получить, взяв AfxGetApp()->m_lpCmdLine или theApp->m_lpCmdLine А еще хорошая функция CommandLineToArgvW() -------------------- ????? ??, ??????? ?????. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |