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

Вниз

Как заставить нормально работать 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
3-16042
akhmadey
2004-01-16 04:37
2004.02.06
База Access и Delphi


3-16121
RUYurik
2004-01-15 07:59
2004.02.06
Объем данных - 4,5 млн записей: не хватает вирт.памяти


6-16560
Andersen
2003-12-02 14:05
2004.02.06
Удаленный коннект к компу


1-16422
GIL
2004-01-22 12:51
2004.02.06
ScrollBox и прокрутка


3-16091
quik
2004-01-11 12:49
2004.02.06
dbase





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