Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возврат в приложение после CreateProcess [D5, Win95/98, Win2k]


Sergey_El'f ©   (2003-01-20 16:33:00) 

Чайниковский вопрос:
имею фрагмент кода (позорно содранный откуда-то), к-рый запускает раровский sfx-архив, и ожидает окочнания его выполнения:
CreateProcess( nil, pchar(cmdline), nil, nil, false, 0,
nil, nil, si, pi);
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

но приложение потом становится неактивным долгое время. как сделать так чтобы оно активизировалось после рара?
и еще вопрос:
как организовать "слежение за отчетом", то есть ставить курсор в последню строку мемо-поля?
memo1.Lines.Strings[memo1.Lines.Count-1];
не работает...


MsGuns   (2003-01-20 19:17:00) [1]

Application.ProcessMessages ?


Sergey_El'f   (2003-01-20 17:50:00) [2]

что-то не помогло...
у меня, конкретно, вот что происходит:
после завершения работы рара, даже если было активным мое окно, становится активным лбое другое (на самом деле, видимо, предыдущее активное окно) ...
может быть дело в параметрах каких-нить?
а как послать сообщение я не знаю...


Digitman   (2003-01-20 17:42:00) [3]

пошли окну нужной формы сообщение WM_SETFOCUS
или вызови метод MyNonActiveForm.SetFocus()


Sergey_El'f   (2003-01-20 17:33:00) [4]

опять я ламерю......
окно моей программы не становится активным, и не хочет им становиться, пока не переключишься в него принудительно...


Digitman   (2003-01-20 17:07:00) [5]

"процессов" у тебя всего два : один - твой собственный, другой - RAR-процесс

и неактивность окна не имеет никакого отношения к теме "неактивности" твоего процесса ... он как шел так и продолжает идти


Sergey_El'f   (2003-01-20 16:59:00) [6]

очень прошу меня извинить за ламерскую постановку вопроса
уточняю:
при таком коде у меня после ЗАВЕРШЕНИЯ выполнения рара окно программы неактивизировано,а у меня там процессы идут...


Digitman   (2003-01-20 16:58:00) [7]


> нуна абизательна..


"нуна абизательна" передавать корректные параметры в ф-цию WaitForSingleObject()

а чтобы твое приложение в ходе ожидания завершения RAR-процесса имело возможность продолжать свою внутреннюю "бурную деятельность", а ля реагировать на события клавы/мыши, "нуна абизательна" вызывать MsgWaitForMultipleObjects() вместо WaitForSingleObject()


Reindeer Moss Eater   (2003-01-20 16:56:00) [8]

А по-моему ты этого и хотел


Sergey_El'f   (2003-01-20 16:53:00) [9]

это ответ to Reindeer Moss Eater


Sergey_El'f   (2003-01-20 16:52:00) [10]

спасибо за ответ, но по-моему, теперь программа не дожидается окончания работы рара, а это нуна абизательна...


MBo   (2003-01-20 16:51:00) [11]

>ставить курсор в последню строку мемо-поля
по OnChange SelStart:=Length(memo1.text);


Reindeer Moss Eater   (2003-01-20 16:45:00) [12]

Не вызывать WaitForSingleObject


Наверх

Титульная страница Поиск, карта сайта Написать письмо