Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > нужен исходник сервиса


Автор: BLACK_KOT 31.10.2007, 15:13
нужен исходник простенького невредоносного сервиса (любой тематики), который бы запускался с виндой,  висел бы в памяти ну и задачу свою выполнял. было бы здорово, еслиб в исходнике коментарии были.  тока оговарите сразу, как сервис ваш выключить, в случае чего.

нужон он мне чисто для обучения. я на примерах гораздо лучше понимаю.

буду крайне благодарен.

Автор: VICTAR 31.10.2007, 15:56
Посмотри в drkb

Автор: BLACK_KOT 31.10.2007, 16:34
че все жмутся то, никто сервис не писал чтоль?

Автор: VICTAR 31.10.2007, 16:48
Тебе же сказано, посмотри в drkb, там есть примеры!

Автор: BLACK_KOT 31.10.2007, 19:11
чё такое drkb? 

дай ссылку пожалуйста.

Автор: Rennigth 31.10.2007, 19:20
Цитата(BLACK_KOT @  31.10.2007,  19:11 Найти цитируемый пост)
чё такое drkb? 

дай ссылку пожалуйста. 

http://forum.vingrad.ru/forum/topic-138426.html

Автор: Sanchezzz 31.10.2007, 20:47
вот примитивный сервер пи запуске создает форму при остановки уничтожает
Код

 const
 WM_APPSTARTUP = WM_USER + 1;
 WM_APPSTOP    = WM_USER + 2;

type
  TService1 = class(TService)
    procedure ServiceCreate(Sender: TObject);
    procedure ServiceExecute(Sender: TService);
    procedure ServicePause(Sender: TService; var Paused: Boolean);
    procedure ServiceShutdown(Sender: TService);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceContinue(Sender: TService; var Continued: Boolean);
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
  end;

var
  Service1: TService1;

implementation uses unit1;

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TService1.ServiceContinue(Sender: TService; var Continued: Boolean);
begin
   Continued := SendMessage(Form1.Handle,WM_APPSTARTUP,0,0) <> 0;
end;

procedure TService1.ServiceCreate(Sender: TObject);
begin
 if ParamStr(1) = '' then begin
 end;
end;

procedure TService1.ServiceExecute(Sender: TService);
begin
  while not Terminated do begin
    ServiceThread.ProcessRequests(True);
  end;
end;

procedure TService1.ServicePause(Sender: TService; var Paused: Boolean);
begin
  Paused := SendMessage(Form1.Handle,WM_APPSTOP,0,0) <> 0;
end;

procedure TService1.ServiceShutdown(Sender: TService);
var
  Stopped: boolean;
begin
  ServiceStop(Sender,Stopped);
end;

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
 if not Assigned(Form1) then begin
  //  Form1 := TForm1.Create(nil); // создадим форму 
  end;
  Started := SendMessage(Form1.Handle,WM_APPSTARTUP,0,0) <> 0;
end;


procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  if Assigned(Form1) then begin
    Stopped := SendMessage(Form1.Handle,WM_APPSTOP,0,0) <> 0;
    FreeAndNil(Form1);
  end
  else
    Stopped := True;
end;


Автор: BLACK_KOT 1.11.2007, 00:55
Sanchezzz, твой сервис закрывается при запуске.  нужно чтобы он висел в памяти, загружался при запуске винды и использовался системой даже в безопасном режиме.

про безопасник ваабще рально? 

Автор: Alix 1.11.2007, 10:47
на winapi пойдет?
http://forum.vingrad.ru/topic-57518/view-findpost/p-471413.html

Добавлено через 1 минуту и 18 секунд
если нужно покажу тоже самое, но делающее что-то smile  (работа с окнами, бд, ...)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)