ты если хочешь что-то конкретное узнать, то так и спроси. Или у него прямо спроси — кристиан нормальный парень, на вопросы не жмется ответить, в том числе и по программированию. Сам пару раз у него спрашивал как он делал конкрентную фишку.
А исходники — с чего ради они будут в сети?
Здравствуйте, grigsoft, Вы писали:
G>ты если хочешь что-то конкретное узнать, то так и спроси. Или у него прямо спроси — кристиан нормальный парень, на вопросы не жмется ответить, в том числе и по программированию. Сам пару раз у него спрашивал как он делал конкрентную фишку. G>А исходники — с чего ради они будут в сети?
Конкретно интресует то, каким образом тотал об изменениях на диске узнает,
не иначе как он точно знает, что конкретно изменилось.
да вот только предлагаемые методы:
FindFirstChangeNotification
ReadDirectoryChangesW
SHChangeNotifyRegister
не дают информации о том что конкретно изменилось.
Хотелось бы штатным способом узнавать об изменениях,
а не изуверскими хуками да детурами которыми FileMon пользуется
(кстати, где бы его исходники найти, на sysinternals.com боле не дают, может есть у кого — поделитесь)
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, allco, Вы писали:
A> FindFirstChangeNotification A> ReadDirectoryChangesW A> SHChangeNotifyRegister A>не дают информации о том что конкретно изменилось.
Только тотал по ходу сам по таймеру сравнивает изменения. По крайней мере wm_timer там дикий. В тотале много кривого есть, но по функционалу пока нечем заменить
Здравствуйте, OLEGus1, Вы писали:
OLE>Только тотал по ходу сам по таймеру сравнивает изменения. По крайней мере wm_timer там дикий. В тотале много кривого есть, но по функционалу пока нечем заменить
По-моему тотал обновляет содержимое каталога только при активизации окна без всяких таймеров. Простой пример — запускаем в Студии проект на компиляцию и переходим в тотал в каталог Release или Debug (куда компиляется). По завершении компиляции ничего не обновляется, ни сразу, ни с задержкой. Жмем F2 — появляются новые файлы.
Насколько я понял, вышеуказанная функция сообщает твоей программе о том,
что что-то изменилось.
Когда она сообщает — просто перечитываешь текущий каталог. И получается...
Здравствуйте, algol, Вы писали:
A>Здравствуйте, OLEGus1, Вы писали:
OLE>>Только тотал по ходу сам по таймеру сравнивает изменения. По крайней мере wm_timer там дикий. В тотале много кривого есть, но по функционалу пока нечем заменить
A>По-моему тотал обновляет содержимое каталога только при активизации окна без всяких таймеров. Простой пример — запускаем в Студии проект на компиляцию и переходим в тотал в каталог Release или Debug (куда компиляется). По завершении компиляции ничего не обновляется, ни сразу, ни с задержкой. Жмем F2 — появляются новые файлы.
Действительно. Ужде таймера нет. В ранних версиях помню был
Здравствуйте, mgoncharenko, Вы писали:
>> SHChangeNotifyRegister
M>Насколько я понял, вышеуказанная функция сообщает твоей программе о том, M>что что-то изменилось. M>Когда она сообщает — просто перечитываешь текущий каталог. И получается...
M>Нет?
Да.
Да вот трабла вся в том, что этой информации не достаточто, надо точно знать что конкретно изменилось.
На самом деле эта функция позволяет узнать и это, да вот только не всегда :(
Например создаем каталог в IE имеем SHCNE_MKDIR c именем созданного катлога,
а если в тотале то имеем тока SHCNE_UPDATEDIR, что не приемлемо.
Тоже самое, если удаляем из IE < 10 файлов, то все ок, получаем 10 SHCNE_DELETE,
но если больше 10, то снова только SHCNE_UPDATEDIR