ShellExecuteEx и диалог выбора приложений
От: Аноним  
Дата: 10.01.11 10:52
Оценка:
Господа программисты, подскажите пожалуйста, что надо сделать, чтобы если ShellExecuteEx не нашел ассоциированных приложений с данным типом файла показал стандартный диалог выбора приложений?

SHELLEXECUTEINFO info;
info.cbSize = sizeof(info);
info.fMask = SEE_MASK_CONNECTNETDRV | SEE_MASK_DOENVSUBST | SEE_MASK_NOCLOSEPROCESS | SEE_MASK_NO_CONSOLE;
info.hwnd = GetFocus();
info.lpVerb = "open";
info.lpFile = file;
info.lpParameters = *cmds ? cmds : NULL;
info.lpDirectory = dir;
info.nShow = show_cmd;
ShellExecuteEx( &info );

GetLastError возвращает ERROR_NO_ASSOCIATION.
Re: ShellExecuteEx и диалог выбора приложений
От: De-Bugger  
Дата: 10.01.11 11:04
Оценка: 4 (2)
Здравствуйте, Аноним, Вы писали:

А>GetLastError возвращает ERROR_NO_ASSOCIATION.


Можно попробовать следующее: если функция вернула ERROR_NO_ASSOCIATION, то запустить еще еще раз, но с verb == "openas"
Re[2]: ShellExecuteEx и диалог выбора приложений
От: Mihajlo  
Дата: 11.01.11 13:31
Оценка:
Здравствуйте, De-Bugger, Вы писали:

DB>Здравствуйте, Аноним, Вы писали:


А>>GetLastError возвращает ERROR_NO_ASSOCIATION.


DB>Можно попробовать следующее: если функция вернула ERROR_NO_ASSOCIATION, то запустить еще еще раз, но с verb == "openas"


спасибо помогло=)
Re[3]: ShellExecuteEx и диалог выбора приложений
От: De-Bugger  
Дата: 11.01.11 14:32
Оценка:
Здравствуйте, Mihajlo, Вы писали:

DB>>Можно попробовать следующее: если функция вернула ERROR_NO_ASSOCIATION, то запустить еще еще раз, но с verb == "openas"


M>спасибо помогло=)


Да, и не забудьте указать флаг SEE_MASK_INVOKEIDLIST.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.