![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| SerjogaVS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.1.2007 Где: Нюрнберг Репутация: нет Всего: нет |
У меня вот такая проблема, я делаю маленькую программку (SDI), которая проводит инсталяцию Oracle сервера.
Для этого есть responsefile (OraInstSE10201.rsp), которую я через CreateProcess запускаю и жду когда он закончит инсталяцию, чтоб запустить другие функции. Проблема в том, что он у меня не ждёт (if(WaitForSingleObject(pi.hProcess,100) != WAIT_TIMEOUT), а сразу идёт дальше, хотя эта же функция с другими процессами работает, вот только тут не хочет. Вот маленький отрывок:
Я думаю, что проблема скорей всего в том, что этот oracle setup ещё в backgroundе стартует java и ждёт пока он вернётся, а CreateProcess думает, что он уже готов? Есть какие-нибудь идеи по этому поводу? Я уже незнаю что делать |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Так он ждёт всего 100 миллисекунд, делай тогда уж так: WaitForSingleObject(pi.hProcess,INFINITE) и программа не выйдет из "спячки" пока хэндл созданного тобою процесса не будет уничтожен системой. Я правильно понял, в этом проблема? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| SerjogaVS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.1.2007 Где: Нюрнберг Репутация: нет Всего: нет |
Нет, тоже не идёт, пробывал
|
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Ну твой процесс уничтожается, когда WaitForSingleObject возвращает управление, значит меняй тактику
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| SerjogaVS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.1.2007 Где: Нюрнберг Репутация: нет Всего: нет |
Да я вот даже другой альтернативы не вижу кроме CreateProcess. System и ShellExecute отпадают, что ещё придумать можно - незнаю |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
первое что в голову пришло: запускать с DEBUG_PROCESS, ловить запуски и ждать на всех.
|
|||
|
||||
| SerjogaVS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 8.1.2007 Где: Нюрнберг Репутация: нет Всего: нет |
Оказывается этот setup.exe новый процесс стартует и сам уничтожается. По этому он у меня и выходит постоянно раньше времени. Теперь я попробую перечислить все процессы, найти этот новый и передать его handle функции WaitForSingleObject. Думаю так должно пойти
Это сообщение отредактировал(а) SerjogaVS - 11.1.2007, 13:52 |
|||
|
||||
![]()
|
| Правила форума "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. |