![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Evgeny84 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Как можно открыть файл из приложения в приложении его создавшем(т.е. *.doc->MS Word и т.д.)
switch case + Create process не катит... Хотелось бы чтобы система сама определила какое приложение соответствует данному расширению... Конечно можно рыться в реестре и соотносить приложения расширению, но хотелось бы одной функцией... Это реально??? Это сообщение отредактировал(а) Evgeny84 - 5.6.2007, 20:20 |
|||
|
||||
threef |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: нет Всего: 10 |
попробуй shellexecute
|
|||
|
||||
fantast |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 10.12.2006 Где: минск, столица на шей Родины Репутация: нет Всего: 2 |
однозначно shellexecute, отличная функция..
--------------------
Эпитафия: Он старался. Неизвестный |
|||
|
||||
Evgeny84 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
threef, fantast, спасибо сработало!
Теперь вот вопрос как из HINSTANCE получить hProcess??? Смысл: отловить закрытие созданного приложения (WaitForSingleObject) |
|||
|
||||
zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
по поводу ассоциаций (на всякий случай):
ShellExecuteEx() Это сообщение отредактировал(а) zkv - 6.6.2007, 00:41 |
||||
|
|||||
Evgeny84 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Проблемма как раз в этом и состоит
флаг SEE_MASK_NOCLOSEPROCESS предпологает незакрытие процесса пока хендл не удалён... т.е. при вызове WaitForSingleObject после открытия происходит взаимоблокировка... т.к. роитель ждёт освобождение хендла, и дочерний процесс ждёт тогоже... Но без этого флага hProcess = NULL. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
вот пример, только не говорите, что у вас он не работает
![]()
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
сам придумал или подсказал кто? ![]() короче, никаких "взаимоблокировок" нет и не будет. рабочих примеров на форуме и в сети - куча(поиск). там другой есть нюанс - не всегда hProcess возвращается(подробности - в msdn'е). если это будет сильно мешать, то FindExecutable + CreateProcess |
|||
|
||||
Evgeny84 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
dumb, zkv,
да что ночью то не примерещется... Проглядел и вправду не написано... Но проблема остаётся... Оказывается конкретно MS Word в упор не хочет закрываться пока на его процесс есть дескриптор... с cmd.exe, notepad.exe проблем не возникает... Это сообщение отредактировал(а) Evgeny84 - 6.6.2007, 08:48 |
|||
|
||||
Evgeny84 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Проблема решилась использованием: FindExecutable + CreateProcess.
Всем спасибо!!! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |