Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Как завершить работу приложения   Найти похожие ветки 

 
stasSSW   (2003-12-30 23:14) [0]

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


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

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


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

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


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

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


 
jack128 ©   (2004-02-06 13:01) [4]


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


 
Suntechnic ©   (2004-02-07 09:05) [5]

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

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
1-1082528780
rams
2004-04-21 10:26
2004.04.11
Нужно выйти из цикла по нажатии кнопки ... как?


1-1079862666
Dark25
2004-03-21 12:51
2004.04.11
Копирование в StringGrid


3-1079506394
Igor G
2004-03-17 09:53
2004.04.11
Install BDE


14-1081911090
Ильш
2004-04-14 06:51
2004.04.11
ВСЕМ ! ВСЕМ ! ВСЕМ !


4-1075673828
i-s-v
2004-02-02 01:17
2004.04.11
CreateComObject(CLSID_ShellLink); вылетает с ошибкой