0 / 0 / 2
Регистрация: 10.10.2012
Сообщений: 34
|
|||||||||||
1 | |||||||||||
Потеря контроля над окном (ReadDirectoryChangesW)06.05.2014, 15:51. Показов 1057. Ответов 3
Метки нет (Все метки)
Доброго времени суток! Возникла проблема.
Программа должна мониторить изменения в заданной папке. Если изменилось время записи файла - вывести название. При нажатии на кнопку, начинается мониторинг папки из поля EDIT.
Но если я убираю CloseHandle и break (чтобы следить постоянно), то окно программы становится некликабельно и его нельзя открыть из панели задач (как будто она зависла), то есть полностью теряется контроль над окном. Сообщения в ListBox об открытии файлов тоже не выводятся. Выводятся они только после того, как делается CloseHandle. Почему так? Естественно, даже если идет мониторинг до первого изменения, программа тоже "зависает" до получения этого самого первого изменения и закрытия хендла папки. Как это исправить? Кликните здесь для просмотра всего текста
0
|
06.05.2014, 15:51 | |
Ответы с готовыми решениями:
3
Курсор мыши над окном Потеря контроля над системой Запрет действий над окном Нетривиальный вопрос по издевательству над чужим окном |
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
|
|
07.05.2014, 07:35 | 2 |
Все верно, так должно быть. У вас же там бесконечный цикл, в котором находится программа. Чтобы этого избежать, нужно запускать этот мониторинг в отдельном потоке.
1
|
0 / 0 / 2
Регистрация: 10.10.2012
Сообщений: 34
|
||||||
07.05.2014, 11:49 [ТС] | 3 | |||||
то есть, по-хорошему, я должен
0
|
567 / 198 / 70
Регистрация: 25.05.2012
Сообщений: 816
|
|
07.05.2014, 12:12 | 4 |
Ну в целом типа того. Вот ReadDirectoryChangesW и FILE_NOTIFY_INFORMATION здесь например обсуждалось как реализовать сам мониторинг.
Как передавать данные - это уже другой вопрос. Можно, например, чтобы поток создавал определенные события в определенных случаях.
1
|
07.05.2014, 12:12 | |
07.05.2014, 12:12 | |
Помогаю со студенческими работами здесь
4
Определить, над каким окном находится курсор мыши Как узнать, над каким окном находится курсор мыши Какое событие позволяет понять, что над окном двигают другое окно Управление курсором, находящимся над окном, стилем и цветом окна (использовать dllmain) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |