![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WaitForSingleObject с перерисовкой вызвавшего приложения [D6, D7, Win2k, WinXP]
П7 © (2004-10-08 11:37:00)Уважаемые Мастера!
У меня сейчас одна прога (1) вызывает на выполение вторую (2). Вызывает и далее WaitForSingleObject, пока не произойдёт закрытие 2. Т.к. 1 никак не реагирует на нажатия мыши (это нужно) и не перерисовывается (это НЕ нужно), то мне приходится минимизировать её.
Есть ли способ заставить вызвавшую программу 1 принудительно перерисовываться, но всё так же не реагировать на всякие манипуляции, типа перетаскивания, ввода и пр?
П7 (2004-10-08 13:37:00) [1]Спасибо, буду пробовать. (:
Polevi (2004-10-08 12:26:00) [2]MsgWaitForMultipleObjects
ssk (2004-10-08 11:56:00) [3]
var
p : TProcessInformation;
while WaitForSingleObject(p.hProcess, 50) = WAIT_TIMEOUT do
Application.ProcessMessages;
Romkin (2004-10-08 11:54:00) [4]
while WaitForSingleObject(pi.hProcess, 1000) = WAIT_TIMEOUT do
Update;
Romkin (2004-10-08 11:53:00) [5]ТАм последний параметор в wait - TIMEOUT. Ставь полсекунды, и давай repaint формы, в цикле, если, конечно, именно время кончилось, а не процесс :)
Romkin (2004-10-08 11:53:00) [6]ТАм последний параметор в wait - TIMEOUT. Ставь полсекунды, и давай repaint формы, в цикле, если, конечно, именно время кончилось, а не процесс :)
Семен Сорокин (2004-10-08 11:51:00) [7]3) сделать цикл ожидания вручную, с проверкой наличия запущенного процесса в списке процессов.
Суслик (2004-10-08 11:44:00) [8]1) Запускай и ожидай в доп. потоке.
2) Можешь также попробовать использовать MsgWaitForMultipleObjects. И реагировать на определенный события.
Reindeer Moss Eater (2004-10-08 11:38:00) [9]В документации настоятельно не рекомендуется вызывать функции ожидания в оновном потоке GUI приложения.