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

Вниз

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

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

Наверх





Память: 0.46 MB
Время: 0.012 c
14-77605
MaximatorVeter
2002-05-21 19:52
2002.06.24
Мистер Трепло.


3-77306
niko4543
2002-05-31 10:10
2002.06.24
Таблица


3-77300
Oleg_er
2002-05-31 06:27
2002.06.24
нужна консультация BDE->Oracle?


3-77252
dr_neo
2002-05-29 21:38
2002.06.24
TADOTable


1-77474
Sour
2002-06-12 09:37
2002.06.24
Как принудительно убить чужое приложение, зная handle





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский