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

Вниз

А как бы мне с ресурсами подружиться ?   Найти похожие ветки 

 
Random bystander ©   (2002-06-13 12:40) [0]

День добрый, мастера.
А я с такой историей к вам:
Была у меня такая нужда - написать програмку, которая будет работать на сервере, смотреть файлы в спуле UUPC и физически удалять из них код вирусов. При том 95% этих вирусов - WIn32.HLLM.Klez.H 4, ну да это не суть.
В общем, написал програмку, висит она себе в трее, по обнаружении файла - флага проверки запускает DrWeb и по результатам проверки ищет в файлах пакетов тело вируса и потом его режет. Начисто.
Пишу на Delphi 5 под XP, на сервере - NT4.
И есть два вопроса:
1. А как бы надежно, но просто определить, что расшаренный файл уже кем-то/чем-то используется ?
2. Программа, даже провисая в трее без активности через некоторое время выдает сообщение Out of system resources. И от этого с печки падает вся система, что не есть приятно. Отчего бы это и как с этим бороться ?

Заранее благодарен.


 
Игорь Шевченко ©   (2002-06-13 12:44) [1]

Ответ на первый вопрос: открывать файл для монопольного использования. Не откроется - значит, испольуется.
Ответ на второй вопрос без кода никто не даст:-)


 
Random bystander ©   (2002-06-13 12:59) [2]


> Ответ на второй вопрос без кода никто не даст:-)

В общем-то, во время нахождения программы в невозбужденном состоянии активна только одна процедура :)

procedure TConForm.Timer1Timer(Sender: TObject);
begin
if (FileExists (ProcessFlag)) and not (EnTrain) then begin
if not(DeleteFile (ProcessFlag)) then LogBox.Items.Add ("Ошибка удаления пускового флага.");
if (FileExists (ProcessFlag)) and EnTrain then begin
LogBox.Items.Add ("Ошибка - уже в процессе зачистки");
Exit;
end;
ProcessTheSpool;
end;
TrayIcon.Hint := "Монитор почтового спула. Живет уже " + TimeToStr (Now-EyeStarted) + #13 + "И при том переработал " + IntToStr (BadTrips) + " писем/пакетов.";
end;


 
Игорь Шевченко ©   (2002-06-13 13:26) [3]

Hint, может, не менять по таймеру ?
Или посмотреть, что происходит в ProcessTheSpool


 
Random bystander ©   (2002-06-13 13:44) [4]


> Или посмотреть, что происходит в ProcessTheSpool

ProcessTheSpool, собсно и не вызывается, пока файл-флаг не создан (тот, что ProcessFlag).
Проблема в том, что и без этого все рушится :(

//Кривизна странная...

А что вообще может вызывать OSR, если памяти и свопа - хоть dev null-ом ешь ?


 
Игорь Шевченко ©   (2002-06-13 14:16) [5]

Ресурсы gdi и user. Странно, что под NT возникает.
Exception logging надо включать, чтобы видеть, где и почему происходит этот Exception


 
oomneeq ©   (2002-06-13 15:24) [6]

>LogBox.Items.Add
Ведь кончится когда-нибудь? :-)

время от времени
LogBox.Items.Clear
не помешал бы...



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
4-77688
Y_Vovan
2002-04-26 15:56
2002.06.24
Как програмно создать юзера с паролем в Win98,Nt,W2K,Xp


4-77702
Falcon
2002-04-23 15:17
2002.06.24
Как вытащить имена Items (caption) из окна


1-77411
cult
2002-06-10 20:01
2002.06.24
Пакеты (DesignTime и RunTIME)


4-77670
Serd_hhc
2002-04-24 09:46
2002.06.24
По-видимому сложные вопросы.


6-77518
Yakudza
2002-04-16 15:50
2002.06.24
Как вырубить прогу удаленно ?