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

Вниз

Как заставить нормально работать delphi- сервис при log of и on   Найти похожие ветки 

 
igornov   (2003-11-13 16:22) [0]

Hi All!

Помогите побороть проблему.

Написал на делфи сервис который периодически обновляет с сетевого ресурса конфигурационные файлы и реестр на локальных машинах. Кроме того он следит за одним процессом клиентского приложения и анализирует его на предмет простоев. Если время простоев превышает допустимое то приложение завершается.Для подсчёта простоев я запускаю этот сервис под системной учётной записью и с доступом к рабочему столу. Периодически перебираю все доступные окна где по заголовку ищу окно требуемого приложения. Потом нахожу связанный с этим окном процесс и беру его Kernel time+User Time. Вот так и считаю простои. Можно конечно было сразу искать процесс по имени, но это приложение могут запускать в тестовом режиме и тогда я не должен его трогать. Режим виден только по заголовку окна.
Кроме этого на базе этого сервиса реализована некая служба сообщений (mailslot). Обновление конфигурации делается по одному таймеру. Подсчёт простоев по другому. Всё прекрасно работает до тех пор пока пользователь не меняет профиль. Как только он меняет профиль - сервис вываливает (не всегда но часто) сообщение об ошибке типа "Память по адресу такому-то не может быть read". После этого падают все таймеры (обновление конфигурации и подсчёт простоев не работают), а остаётся рабочей только служба сообщений (то есть сдыхает не полностью).

Теперь вопрос: чего из выше описанного я не должен делать в момент закрытия рабочего стола юзера? Какие процессы происходят при этом в Windows и как на это должен реагировать мой сервис чтобы не делать ошибок?

Заранее благодарен за любую помощь.

С ув. Игорь Новосёлов
E-mail: igorn@ingok.com.ua


 
igornov   (2003-11-25 10:45) [1]

Удалено модератором
Примечание: Создание пустых сообщений


 
Digitman ©   (2003-11-25 12:04) [2]


> ошибке типа "Память по адресу такому-то не может быть read".
>


не "типа", а тебе конкретно (!!) сообщается, кто, инструкцией по какому адресу пытается получить доступ по чтению по такому-то адресу, в то время как прав на то у "читающей" инструкции нет.

это ж не Пушкину адресовано, а тебе ) ... для анализа причин возникновения ситуации, а не для "типа")

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


 
igornov   (2003-11-28 10:05) [3]

Интересно а каким способом можно отладить сервис в момент закрытия всех окон включая и окна отладчика?


 
Digitman ©   (2003-11-28 10:19) [4]

LogMessage() на что ?
расставляй эти "ловушки" в сомнительных местах



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
3-16036
rika
2004-01-12 15:58
2004.02.06
Как вставить в текстовый файл инфу из БД?


7-16775
Kyzja
2003-11-17 14:35
2004.02.06
Как запихнуть форму в dll ?


8-16534
dzmitry_
2003-09-28 11:52
2004.02.06
текст в Bitmap


14-16600
ёё
2004-01-15 14:10
2004.02.06
Что есть пиринговые сети?


1-16365
zioza
2004-01-21 11:18
2004.02.06
Нестандартные кнопки, круглые и так далее, полупрозрачные