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

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

Проблема с компонентом мониторинга ShellNotify [D6, XP]


Страницы:   1 2 3

Dr. Genius ©   (2010-04-05 21:41:00) 

Здравствуйте!

Скачал с torry компонент ShellNotify, который предназначен для non “catch some undocumented FileSystem events”. Принцип его работы прост: указываешь директорию, настраиваешь опции мониторинга, и компонент выводит все изменения, происходящие в отслеживаемой папке: создание, удаление, переименование и т.д.

Проблема в том, что, что обработчик события OnChange срабатывает несколько раз (в частности, при обнаружении создания файла). То ли это грубейшая ошибка разработчика, то ли я чего-то не понимаю. Буду признателен, если проясните ситуацию.

Я хотел выложить здесь код компонента, но сработало ограничение символов. Поэтому вот ссылка на компонент.
http://torry.net/vcl/filedrv/notification/ShellNotify.zip


Dr. Genius   (2010-04-06 18:22:00) [1]

Снова здравствуйте.

Проблема моя так и не решилась.

Ничего нового не скажу, но те менее... Попробовал скомпилировать программу на другом компьютере, но опять все то же самое. Отключал все лишние процессы, переустанавливал компонент, запускал программу на еще на одном компьютере (на Висте), но ничего не помогло.


Демо   (2010-04-06 15:50:00) [2]


> Игорь Шевченко ©   (06.04.10 15:36) [48]
> Я не понимаю одного - в начале компонента выложена туча
> ссылок на документацию в MSDN. Почему бы ее не почитать,
>  прежде чем задавать вопросы/критиковать компонент/критиковать
> иные методы ?


А что там такого можно вычитать по поводу критики?


Игорь Шевченко   (2010-04-06 15:36:00) [3]

Я не понимаю одного - в начале компонента выложена туча ссылок на документацию в MSDN. Почему бы ее не почитать, прежде чем задавать вопросы/критиковать компонент/критиковать иные методы ?


Демо   (2010-04-06 14:57:00) [4]


> Anatoly Podgoretsky ©   (06.04.10 14:56) [46]
> > Демо  (06.04.2010 14:55:45)  [45]Даже пылью не покрылся.
>


Ну да, если каждый день протирать, то и запорожец двадцатилетний новым будет.


Anatoly Podgoretsky   (2010-04-06 14:56:00) [5]

> Демо  (06.04.2010 14:55:45)  [45]

Даже пылью не покрылся.


Демо   (2010-04-06 14:55:00) [6]


> > Демо ©   (06.04.10 14:48) [43] > Может и так, но сути-
> то не меняет.А нафиг нам ржавый комбайн, когда можно приобрестиновенький
> запорожец?


Это ReadDirectoryChangesW новый? -))


Leonid Troyanovsky   (2010-04-06 14:53:00) [7]


> Демо ©   (06.04.10 14:48) [43]

> Может и так, но сути-то не меняет.

А нафиг нам ржавый комбайн, когда можно приобрести
новенький запорожец?

--
Regards, LVT.


Демо   (2010-04-06 14:48:00) [8]


> Leonid Troyanovsky ©   (06.04.10 14:44) [41]
> > Демо ©   (06.04.10 14:39) [40] > Вопрос: У меня есть мерседес,
>  у него то-то барахлит.Скорее: хз какой комбайн, собранный
> из металлолома.--Regards, LVT.


Может и так, но сути-то не меняет.


Демо   (2010-04-06 14:47:00) [9]


> Dr. Genius


Похоже, всё же проблема не в компоненте.
На самом деле в Windows XP, Windows Server 2003 это метод работает не так, как описано в MSDN при создании файлов.

Можно простейшие костыли прилепить.
Для этого сохранять последнее обработанное извещение.
При поступлении нового сравнивать с предыдущим. Если оба извещения и Параметры одинаковые, то пропускать обработку.


Leonid Troyanovsky   (2010-04-06 14:44:00) [10]


> Демо ©   (06.04.10 14:39) [40]

> Вопрос: У меня есть мерседес, у него то-то барахлит.

Скорее: хз какой комбайн, собранный из металлолома.

--
Regards, LVT.


Демо   (2010-04-06 14:39:00) [11]


> Игорь Шевченко ©   (06.04.10 14:18) [39]
> наиболее полезный ответ дан в [14], уже лет 6 как этот способ
> прекрасно работает на NT-линейке (Win2k, WinXP, недавно
> на Windows 7) без проблем


Эта функция ограниченной полезности и может использоваться в весьма  ограниченном круге задач.

Так что тот совет - не из той оперы. Навроде такого:
Вопрос: У меня есть мерседес, у него то-то барахлит. Как исправить?
Ответ: Купи запорожец.

Вообще - есть вопрос, вполне конкретный.


Игорь Шевченко   (2010-04-06 14:18:00) [12]

наиболее полезный ответ дан в [14], уже лет 6 как этот способ прекрасно работает на NT-линейке (Win2k, WinXP, недавно на Windows 7) без проблем


Дмитрий Белькевич   (2010-04-06 14:13:00) [13]

У меня как-то на XP работал TDirMon:

http://www.torry.net/quicksearchd.php?String=TDirMon&Title=Yes


QAZ   (2010-04-06 14:01:00) [14]

Удалено модератором
Примечание: Выражения выбираем, не в пивной


Vitalts   (2010-04-06 13:58:00) [15]

у мну дельфей нету :)


Демо   (2010-04-06 12:58:00) [16]


> Vitalts   (06.04.10 10:06) [34]
> Скинь куданить ехе, заценю на своей системе


Да возьми из топика по ссылке. Демка работает точно так же.


Vitalts   (2010-04-06 10:06:00) [17]

Скинь куданить ехе, заценю на своей системе


Демо   (2010-04-06 02:36:00) [18]

Ошибка в компоненте.
Завтра попытаюсь посмотреть как решить...


Демо   (2010-04-06 02:00:00) [19]

Ситуация странная. На Win7 работает нормально. На Win XP, Win 2003 не желает.


Германн   (2010-04-06 01:35:00) [20]


> Dr. Genius   (05.04.10 22:23) [13]
>
>
> > И электронной почты тоже нету ?
>
>
> Нет.
>

В корзину такой компонент!


Страницы:   1 2 3

Наверх

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