Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.015 c
4-101033
Axis_of_Evil
2003-05-29 09:23
2003.07.31
Ошибка с Hook ом ...


14-100987
MishaS
2003-07-15 17:51
2003.07.31
Delphi не вдит переменную


1-100723
sagchat
2003-07-18 20:22
2003.07.31
трайнер для GTA


1-100672
cjiohobaji
2003-07-18 05:43
2003.07.31
отчёт


14-100978
Макс
2003-07-14 06:53
2003.07.31
KeySpy





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский