![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Solitaire |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 10.7.2008 Репутация: нет Всего: нет |
Здравствуйте.
Такая проблема. Пытаюсь из своей программы открывать картинки в программе, которая ассоциирована с файлами данного типа. Т.е. пользователь двойным щелчком по значку в ListView открывает соответствующий файл в программе просмотра изображений по умолчанию, так же как в эксплорере. Использую ShellExecute:
У меня изображения открываются в ACDSee. После вызова ShellExecute получаю ошибку: ![]() ShellExecute возвращает 0 (The operating system is out of memory or resources). Пробовал использовать ShellExecuteEx. То же самое сообщение об ошибке. GetLastError() возвращает ERROR_MOD_NOT_FOUND (The specified module could not be found). В эксплорере картинки открываются в ACDSee нормально. Что-нибудь можно сделать, чтобы файлы открывались корректно? Способ должен быть универсальным, т.к. я не знаю, какие программы просмотра установлены у пользователя. Заранее спасибо. |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Все дело в рабочей дерриктории.
Тебе надо пользоваться ShellExecuteЕх -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Solitaire |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 10.7.2008 Репутация: нет Всего: нет |
Рабочая директория - это та, в которой находится открываемый файл?
Пробовал так:
Все-равно не работает. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
в данном случае, это директория, в которой находится программа, открывающая файл по-моему, ShellExecute все правильно делает, просто ACDSee что-то не дописывает в класс своих расширений, например, как уже сказали: рабочую директорию попробуй тот же ShellExecute, но смени браузер по-умолчанию для картинок: "Открыть с помощью...", "Использовать для всех файлов..." поставь к примеру базовый "Программу для просмотра изображений и факсов", или любой аналогичный если предположение подтвердится, то пробуй переустановить ACDSee, не поможет - это точно их проблемы, можешь либо учитывать это как частный случай и вызывать ShellExecuteEx (только с правильной директорией), либо писать репорт, что логично, проблема же в таком случае будет уже не в твоей в программе -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Solitaire |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 10.7.2008 Репутация: нет Всего: нет |
Действительно, попробовал сопоставлять с .jpg другие программы. При вызове ShellExecute все открывают файл нормально. Проверил вот это:
Сработало. GremlinProg, большое спасибо. Ситуация теперь ясна. Это сообщение отредактировал(а) Solitaire - 2.7.2009, 12:36 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
кстати, у ShellExecute тоже есть lpDirectory
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |