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

Вниз

Как отследить изменения в каталоге?   Найти похожие ветки 

 
DimaS ©   (2003-07-17 13:49) [0]

Как отследить изменения в каталоге? Чтобы программа узнала, когда например из другой проги удалили файл в этом каталоге.


 
Prov ©   (2003-07-17 14:16) [1]

FindFirst
FindNext
FindClose


 
Skier ©   (2003-07-17 14:18) [2]

DimaS © (17.07.03 13:49)
Никак


 
Толик ©   (2003-07-17 14:19) [3]

FindFirstChangeNotification + FindNextChangeNotification + FindCloseChangeNotification + WaitForSingleObject


 
Толик ©   (2003-07-17 14:20) [4]

to Skier © (17.07.03 14:18)
Ну это через чур категорично... :)


 
Skier ©   (2003-07-17 14:22) [5]

>Толик © (17.07.03 14:20)
А твой вариант для какой ситуации подходит ? Любой ?


 
Толик ©   (2003-07-17 14:24) [6]

По крайней мере для тех, которые в WinHelp"е описаны:

FILE_NOTIFY_CHANGE_FILE_NAME
FILE_NOTIFY_CHANGE_DIR_NAME
FILE_NOTIFY_CHANGE_ATTRIBUTES
FILE_NOTIFY_CHANGE_SIZE
FILE_NOTIFY_CHANGE_LAST_WRITE
FILE_NOTIFY_CHANGE_SECURITY


 
Skier ©   (2003-07-17 14:28) [7]

>Толик © (17.07.03 14:24)
Хм...
А я так понял что для твоего варианта нужно запустить внешнее приложение из программы на Delphi (приложения автора) и ждать...
Так оно обстоит ?


 
Толик ©   (2003-07-17 14:30) [8]

Ну ждать-то можно и в отдельном потоке. Только потом его надо прибить корректно, если ничего не удалялось.


 
Skier ©   (2003-07-17 14:32) [9]

>Толик © (17.07.03 14:30)
Это я понял.
Но нужно запустить программу в приложении через CreateProcess
Не так ли ?


 
Толик ©   (2003-07-17 14:36) [10]


procedure TForm1.Button6Click(Sender: TObject);
var
h: THandle;
begin
h := FindFirstChangeNotification(pchar(ExtractFilePath(Application.ExeName)),
FALSE, FILE_NOTIFY_CHANGE_FILE_NAME);
if WaitForsingleObject(h, INFINITE) = WAIT_OBJECT_0 then
ShowMessage("for example: file deleted");
end;

Самое обычное приложение, я его запускал прямо из-под Делфей. После клика на кнопке приложение повисает до тех пор, пока не произойдут какие-то изменения в ExtractFilePath(Application.ExeName). Всё тупо до безобразия.


 
Skier ©   (2003-07-17 14:40) [11]

>Толик © (17.07.03 14:36)
Убедил. C Толик © (17.07.03 14:20) согласен :)


 
Толик ©   (2003-07-17 14:42) [12]

to Skier © (17.07.03 14:40)
спасибо за признание :))


 
Skier ©   (2003-07-17 14:44) [13]

>Толик © (17.07.03 14:42)
Я проcто думал что нужен CreateProcess.
В общем : "Признаю свою вину, меру, степень, глубину !" :)


 
panov ©   (2003-07-17 15:47) [14]

см. пример в статье на сайте.



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

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

Наверх




Память: 0.49 MB
Время: 0.018 c
3-100595
uuuu
2003-07-09 09:46
2003.07.31
Время ожидания истекло


4-101020
maker
2003-05-27 08:04
2003.07.31
Ошибка при компиляции


14-100917
DeMoN-777
2003-07-14 11:16
2003.07.31
Домен


3-100530
Skalp
2003-07-07 14:42
2003.07.31
Блокировка


1-100682
Альф
2003-07-18 10:36
2003.07.31
Привет :) Маленький вопрос по FastReport 2.4