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

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

Как завершить работу приложения [D7, WinXP]


stasSSW ©   (2003-12-30 23:14:00) 

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


Suntechnic   (2004-02-07 09:05:00) [1]

Дополню jack128 ©   (06.02.04 13:01) [4].

Чтобы обойтись без цикла сообщений создаёшь объект межпроцессорной синхронизации (например, как здесь уже советовали, Event) и, как я понимаю, используешь FindFirstChangeNotification(FindNextChangeNotification). Далее оба хэндла используешь в ф-ции WaitForMultipleObjects с 3-им параметром false. При переходе одного из этих объектов в signaled состояние выполнение потока возобновиться. Что именно произошло (либо действия с файлами либо команда извне о завершении) можно узнать анализируя возвращаемое ф-цией значение (подробности в справке).


jack128   (2004-02-06 13:01:00) [2]


> stasSSW   (31.12.03 13:43) [2]
ну тогда можно использовать объекты синхронизации (Events, например)


kostik   (2004-02-06 11:55:00) [3]

Пошли на хэндл главного окна этого приложения сообщение WM_CLOSE
SendMessage(hWnd,WM_CLOSE,0,0);
hWnd - определяется с помощью FindWindow( nil,заголовок окна);


stasSSW   (2003-12-31 13:43:00) [4]

jack128, не предполагалось, но если нет другого варианта, то придется сделать. Спасибо


jack128   (2003-12-31 00:29:00) [5]

Основной поток имеет цикл обработки сообщений? Если, да то пошли ему WM_QUIT..


Наверх

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