Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с загрузкой файла 
:(
    Опции темы
Proletariy
Дата 24.9.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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), просто запускается моя программа не принимая значения сохраненные в файле и имя файла. Т.е. запускается просто программа.

Что делать, как быть, посоветуйте.  smile 

PM MAIL   Вверх
Andrey44
Дата 24.9.2009, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Копай в сторону CWinApp::ParseCommandLine


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Proletariy
Дата 24.9.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Andrey44  Thanks
PM MAIL   Вверх
Proletariy
Дата 24.9.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Andrey44  подскажи пжл.

Не могу понять как получить информацию, открываем ли мы файл, либо просто стартуем приложение:

Код

BOOL CMyApp::InitInstance()
....
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen)
{
     OpenDocumentFile(m_lpCmdLine);
    //или
    cmdInfo.m_strFileName = CCommandLineInfo::m_strFileName;
}


if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen)
не срабатывает на запуск программы через открытие файла????
PM MAIL   Вверх
Andrey44
Дата 25.9.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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()


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.