![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: нет Всего: 10 |
Posol.... Вы упомянули ReadDirectoryChangesW для слежения за каталогом... У меня в некоторых прогах такое наворочено в этих целях, что вообще-то стало стыдно.... Help у меня на эту функцию не отзывается... Она что в какую-то библиотеку входит стороннюю, или апишная? Да и как-то я механизм даже понять не могу....
Нельзя ли по-подробнее.... Заранее благодарен.... |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Серж, запусти Пуск|Программы|Borland Delphi 6.0|Help|MS SDK Help Filses|Win32 Programmer's Reference...
Мог бы просто позвонить или зайти... ![]() ![]() ![]() |
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: нет Всего: 10 |
Susel, спасибо..... но ты же Дельфи не любишь... не хотел мучить....
The ReadDirectoryChangesW function returns information describing the changes occurring within a directory. Это я подозревал.... Но как ей пользоваться? Ведь Posol упоминал, что она сама следить будет.... Все равно не понимаю как, ведь это не событие, оно не возникает само от факта изменения в каталоге.... Значит ее все-таки надо запускать с промежутком во времени....? в чем тогда выйгрыш? кому интересно начало, то оно вот здесь.... в конце.... http://forum.vingrad.ru/index.php?showtopic=20799 |
|||
|
||||
p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Сам когда-то пробовал, щас довёл до ума...
Там ReadDirectoryChangesW в потоке живёт (для удобства)... Вот он: zip 5 кб... Добавлено @ 21:55 Если влом качать, то вот само слежение:
Да нет вообще-то, при изменении содержимого каталога генерятся события, их можно дождаться с помощью FindFirstChangeNotification / FindNextChangeNotification + WaitFor*Object... А ReadDirectoryChangesW сама дожидается следующего изменения, при этом выполнение потока приостанавливается. Правда, можно в CreateFile указать FILE_FLAG_OVERLAPPED, тогда ReadDirectoryChangesW будет асинхронной... Ну это кому как удобнее... Присоединённый файл ( Кол-во скачиваний: 267 ) ![]() -------------------- С уважением, г-н Посол. |
||||
|
|||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: нет Всего: 10 |
Спасибо огромное.... Сколько иногда ненужной работы делаем.... по незнанию.... Сколько раз убеждаюсь....
|
|||
|
||||
2fank |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 28.6.2007 Репутация: нет Всего: нет |
А как следить за сетевой папкой?
|
|||
|
||||
dma |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.12.2006 Где: Belarus, Minsk Репутация: нет Всего: 1 |
указать сетевой путь, и будет следить за сетевой папкой
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
В принципе, директория это тоже файл, но будет ли это работать для сетевых? Ведь на своем диске можно сделать придумать событие для драйвера HDD, которое буде оповещать о таких вещах, а как такое сделать для чужого драйвера?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
2fank |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 28.6.2007 Репутация: нет Всего: нет |
указал "\\mycomp\1" - не работает Updated оказывается нужно сменить
на
Это сообщение отредактировал(а) 2fank - 3.4.2008, 22:55 |
||||||||
|
|||||||||
corpsehunter |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 24.2.2007 Репутация: нет Всего: 3 |
а если вешаешь это слежение на флэху, то она блокирует ее и не дает извлечь. Можно это как-нибудь исправить?
--------------------
Тест на IQ показал отрицательный результат... |
|||
|
||||
Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Ничего удивительного: у нас есть открытые Handl`ы, вот система и говорит, что работа с флешкой не закончена. Если я не ошибаюсь, то единственно возможное решение: отлавливать "попытку безопасного отключения" и снимать слежение. |
|||
|
||||
corpsehunter |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 24.2.2007 Репутация: нет Всего: 3 |
ну это логично, и мне это же приходило в голову... а как его отлавливать? оО --------------------
Тест на IQ показал отрицательный результат... |
|||
|
||||
zhefran |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 27.9.2007 Где: Винница-Киев-Ирпе нь-?, Украина Репутация: нет Всего: нет |
В коде p0s0l, есть один нюанс из-за которого нельзя переименовать файлы и папки в корне каталога.
Там нужно добавить при создание хэндла такое:
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно! |
|||
|
||||
zhefran |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 27.9.2007 Где: Винница-Киев-Ирпе нь-?, Украина Репутация: нет Всего: нет |
Нашел при исполнения кода еще один нюанс! При попытке остановки роботы потока кнопкой, поток все равно продолжает свою роботу!!!
![]() --------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно! |
|||
|
||||
Qu1nt |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: 5 Всего: 50 |
Могу предположить:
ThreadForScan:
DlgMain:
Это сообщение отредактировал(а) Qu1nt - 23.9.2008, 13:11 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |