|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.07.2007, 17:23 | #1 |
Регистрация: 05.07.2007
Сообщений: 5
|
Как запустить приложение, дождаться его исполнения и только потом выполнять код?
Функция shellExecute() запускает и пошло дальше выполнять код, а мне надо модально, ятобы дождаться пока приложение исполниться, а потом идти дальше по коду.
|
18.07.2007, 17:26 | #2 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
Это часто задаваемый вопрос. Яндекс на раз два.
Код:
|
18.07.2007, 18:01 | #3 |
Регистрация: 05.07.2007
Сообщений: 5
|
Спасибо попробую
|
18.07.2007, 19:55 | #4 |
Регистрация: 05.07.2007
Сообщений: 5
|
Вызывает ошибку времени выполнения: Aксесс виолейшон в адресе ....
Я это правда сделал в самописной процедуре и ( Sender as TControl ).Enabled := false; эти вещи не делал т. к. там нет Sender |
18.07.2007, 20:09 | #5 |
Регистрация: 05.07.2007
Сообщений: 5
|
Передал Sender из таймера все также сделал, пишет во время выполнения: invalid class typecast
|
18.07.2007, 20:59 | #6 |
;-)
Пользователь
Регистрация: 18.07.2007
Сообщений: 69
|
Покажите код.
Конкретно эта процедура работает без проблем. |
19.07.2007, 14:00 | #7 |
Регистрация: 05.07.2007
Сообщений: 5
|
procedure Obmen(Sender: TObject);
var atr : integer; ..... .... ProcInfo: PShellExecuteInfo;// begin .... .... //Запускаем загрузку 1С // ComStr:=Pchar(Kat+'set\ExchangeIn.c md'); // shellExecute(F1.handle,'open',ComSt r,nil,nil,tipZapuska); GetMem( ProcInfo, SizeOf( ProcInfo^ ) ); with ProcInfo^ do begin Wnd := Application.Handle; cbSize := SizeOf( ProcInfo^ ); lpFile := PChar(Kat+'set\ExchangeIn.cmd'); lpParameters := nil; lpVerb := 'open'; nShow := SW_SHOW; fMask := SEE_MASK_DOENVSUBST or SEE_MASK_NOCLOSEPROCESS; end; try Win32check( ShellExecuteEx( ProcInfo ) ); while not Application.Terminated and ( WaitForSingleObject( ProcInfo.hProcess, 100 ) = WAIT_TIMEOUT ) do Application.ProcessMessages; finally if ProcInfo.hProcess <> 0 then CloseHandle( ProcInfo.hProcess ); Dispose( ProcInfo ); end; ..... ..... Может в версии Delphi дело у меня 5 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Показываем объект и только потом работаем дальше | celovec | Общие вопросы Delphi | 7 | 25.03.2008 15:28 |
начал учить только-только - нужна ваша помошь | vanDJ | Помощь студентам | 20 | 18.12.2007 21:53 |
как запустить приложение из к примеру текст файла!!! | Volkogriz | Общие вопросы Delphi | 12 | 12.10.2007 12:27 |