![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
запускаю програму с помощью ShellExecute (0, nil,'gbak параметры', nil, nil, 0);
мне надо чтобы база востановилась из бэкапа и программа пошла работать дальше обращаясь уже к этой базе а получается, что запускается gbak, а программа продолжает работать и база не успевает создастся может кто чем поможет? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Как запустить программу и подождать ее завершения:
|
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
блин, я чтото подобное делал на 3 курсе когда изучали многопоточность
![]() большое спасибо |
|||
|
||||
Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
Snowy как всегда рулит
Однако есть доп. вопрос Я нашел в Инете подобный пример на ассемблере (впрочем код и так понятен)
Тоже самое но CloseHandle, [ProcessInfo.hThread] вызывается раньше чем CloseHandle, [ProcessInfo.hProcess] И, что самое интересное, раньше WaitForSingleObject Snowy, не мог бы ты прокомментировать ? Заранее спасибо. ЗЫ Забыл сказать - код, который я привел - рабочий. Вроде работает, но меня мучают смутные сомнения, првильно ли я сделал? Это сообщение отредактировал(а) Gershkovich - 6.4.2006, 10:46 |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
появился неприятный момент - что бы это работало надо подключить Windows, а в программе я использую поиск с помошью FindFirst, FindNext, FindClose (SysUtils)
Так вот после подключения Windows выдается ошибка: [Error] load2base.dpr(285): Incompatible types: 'Cardinal' and 'TSearchRec' строка: FindClose(TrueFile); насколько я понял процедура с названием FindClose есть и в Windows, но с параметром другого типа если ктото сталкивался с таким напишите PS пока закоментировал все FindClose, вроде работает Это сообщение отредактировал(а) superVad - 6.4.2006, 10:59 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
SysUtils.FindClose?
а что тебя смущает? закрывается ведь hThread а не hProcess -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
SysUtils.FindClose итд
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
SysUtils.FindClose - работает отлично
тока заметил такаяже проблема была с DeleteFile, теперь все отлично всем спасибо |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Просто хэндл треда нам не нужен. Ждем то мы освобождения хэндла процесса. Поэтому нам все равно когда отпускать хандл треда. Просто перемести Windows в начало списка uses. И все заработает. При совпадении имен, используется та структура или функция, которая описана в модуле, стоящем позже в списке uses. Т.к. ты добавил Windows в конец списка, то стали браться функции и структуры из него. Всего лишь нужно, чтобы SysUtils в списке uses стоял позже Windows. |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Ага, переместил и отлично работает
в CreateProcess первый параметр поставил nil иначе не запускался Это сообщение отредактировал(а) superVad - 6.4.2006, 14:29 |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
superVad,
См. также SHellExecuteEx -------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |