На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> работа с Сервисами , Имеются проблемы с разработкой
    :wall: У меня есть такой вопрос: я пишу сервис, который должен выступать как файловый ревизор и у меня возникли следующие вопросы:
    1. какой тип сервиса выбрать?
    2. Как наладить вывод отладочных сообщений на экран(например средствами showmessage),а то почему-то не получается:(
    3. Что делает обработчик ServiceExecute?
    Использую Delphi 2007 for win3
    Всем кто откликнется спасибо!
      Цитата DelCoderz @
      какой тип сервиса выбрать?

      По умолчанию вариант(stWin32), я думаю, вполне подойдёт, зависит от реализации ревизора(кстати, а что это?) :)
      Цитата DelCoderz @
      Как наладить вывод отладочных сообщений на экран(например средствами showmessage),а то почему-то не получается:(

      Взаимодействовать с оконной станцией могут только интерактивные сервисы, но интерактивность сервисов присутствует лишь до Win Vista. Воспользуйся текстовым логом, например из JCL(JclSimpleLog)
      Цитата DelCoderz @
      Что делает обработчик ServiceExecute?

      OnExecute позволяет полностью контролировать процесс выполнения сервиса. Т.е. в данном методе выполняется вся работа сервиса, но надо периодически уведомлять Win SCM о своём состоянии и самому завершать работу сервиса. Обычно используют события OnStart & OnStop тогда создаются рабочие потоки. По уведомлению от системы потоки останавливаются и мы это можем обрабатывать, как нам надо.

      Прочитай эту статью http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1348 там в принципе всё описано подробно.
        Эта программа будет создавать список контролируемых файлов,а затем периодически проверять их размер и некоторые другие характеристики(например образцы двоичного кода в фалйле). Будет частью opensource антивирусной системы :)
          Цитата DelCoderz @
          Эта программа будет создавать список контролируемых файлов,а затем периодически проверять их размер и некоторые другие характеристики(например образцы двоичного кода в фалйле). Будет частью opensource антивирусной системы :)

          DelCoderz, в общем я предполагаю, что на начальном этапе ты будешь всё это делать посредством WinApi :) Поэтому тип по умолчанию stWin32 тебе вполне подойдёт, подробной информации о типах сервиса на русском я вроде не встречал, поэтому, если я ошибся по поводу способа реализации, можешь начать отсюда http://msdn.microsoft.com/en-us/library/ms685996%28VS.85%29.aspx
            У меня такая проблема: мой сервис все делает как надо за искалючением одного: пишет выходные данные не в С:\, а в С:\system32. C чем это связано? Можете за одно объяснить как происходит инсталляция сервиса. Всем кто ответит большое спасибо!
              DelCoderz
              Цитата
              2. Как наладить вывод отладочных сообщений на экран(например средствами showmessage),а то почему-то не получается:(

              я бы сделал две программы, сам сервис и монитор_сообщений к нему. Монитор создает MMF и читает данные оттуда, сервис пишет в лог, и если создан MMF с нужным именем - пишет в него. Можно через пайпы (pipes) организовать "общение" двух процессов, но я предпочитаю MMF.
                если ты создаешь файл в текущей директории, это и будет С:\system32. Это связано с тем, что сервис запускается не сам, а виндовским менеджером служб. Если надо писать лог в каталог сервиса, найди путь к его EXE, например так:
                ExpandedWrap disabled
                  var
                      p:array [0..255] of Char;
                      lpFileName:PChar;
                      nSize:DWORD;
                  begin
                   lpFileName:=@p[0];
                   nSize:=255;
                   
                   if GetModuleFileName(0,lpFileName,nSize )>0 then
                    result:=String(ExtractFilePath(lpFileName))

                Инсталляция сервиса делается так: myservice /install :)
                  Нет насчет ткомандной строки я знаю,но я имел ввиду как это дедлает сама система?
                    А что такое MMF
                      Уточнение по повсоду вопроса:он возник после следующего топика,где говорится
                      я бы сделал две программы, сам сервис и монитор_сообщений к нему. Монитор создает MMF и читает данные оттуда, сервис пишет в лог, и если создан MMF с нужным именем - пишет в него. Можно через пайпы (pipes) организовать "общение" двух процессов, но я предпочитаю MMF.
                        Цитата DelCoderz @
                        А что такое MMF

                        Отображаемый файл. Один из методов взаимодействия между процессами для обмена информацией. Разницы между пайпами и отображаемыми файлами (в твоем случае) - никакой - какой метод удобнее/лучше знаешь - тот и используй. На интерактивные сервисы лучше забей - иди по пути, который тебе показал antonn. И еще - при создании пайпа или ММF обрати внимание на дескрипторы безопасности (по умолчанию, если скажешь nil) объект создастся с правами локального сервиса и подключение простых смертных (не админов) к нему будет предотвращено системой. :D
                          У меня такая проблема с сервисом: в обработчике onexecute вообще не выполняется часть кода

                          Добавлено
                          Сообщение отредактировано: DelCoderz -
                            Цитата DelCoderz @
                            не выполняется часть кода

                            Она идет после условия или в цикле? проверь условие. Возможно оно всегда FALSE и компилятор выкинул эти строки.
                              Цитата DelCoderz @
                              в обработчике onexecute вообще не выполняется часть кода

                              Возможно у вас возникает исключение. Проверьте оснастку "События".
                                Вношу уточнение:не выполняется часть кода ветки else, но чято нтересно нетолько она. Не поисходит процесса записи в лог, что должно было быть Я приатачу исхоодник к посту и если то-то решиться затратить свое время на его изучение и укажет на ошибки, то буду очень-очень благодарен, а то вся разработка стоит :huh:
                                Сообщение отредактировано: DelCoderz -

                                Прикреплённый файлПрикреплённый файл_______________________.rar (197.21 Кбайт, скачиваний: 114)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1638 ]   [ 16 queries used ]   [ Generated: 25.04.24, 07:52 GMT ]