Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Lightbulb Programa SERVICIO WINDOWS

Buenos dias:
En esta ocasion, les molesto para saber si alguien conoce como hacer que mi programa sea un servicio (como los que estan en services .msc de windows, de los que se pueden poner automatico, manual, detenido...)

y ademas alguien sabe como protegerlo de que no lo puedan matar a mi programa? Algo como Ej:
Si quiero matar el proceso svchost.exe me dice: "la operacion no se puede termina, acceso denegado" (lo pueden ver en ej: xp y 2000)
o no se.. alguna otra forma de que no puedan matar el proceso de mi programa, desde ya gracias a todos!
Responder Con Cita
  #2  
Antiguo 29-04-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Para que tu aplicacion sea un servicio inicia un nuevo proyecto asi:

File -> New -> Other -> Service Application

Este será el aspecto:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TService1 = class(TService)
  private
    { Private declarations }
  public
    function GetServiceController: TServiceController; override;
    { Public declarations }
  end;

var
  Service1: TService1;

implementation

{$R *.DFM}

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

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

end.

Ahora tienes que implementar tú los métodos:

Código Delphi [-]
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);

Me imagino que querrás que realice cada cierto tiempo una acción. Pues no puedes poner un Timer así por las buenas. Debes crearlo:

Código Delphi [-]
  .
  .
  .
    private
      { Private declarations }
      Timer: TTimer; 
  .
  .
  .

Y al comenzar el servicio:

Código Delphi [-]
    procedure ServiceStart(Sender: TService; var Started: Boolean);
    begin
      Timer:=TTimer.Create(nil);
      Timer.Interval := Intervalo;
      Timer.OnTimer:=TimerOnTimer; //aquí la acción 
    end;

Y al terminar el servicio:

Código Delphi [-]
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
    begin
     Timer.Free;
     Timer:=nil;      
    end;

Bueno esto es mas o menos el trabajo. Espero que te ayude.
Responder Con Cita
  #3  
Antiguo 29-04-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te recomiendo investigar la clase TService, que fue creada para este motivo. En pocos paso: File\New\Other\Application Service y ya tienes un servicio!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 29-04-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Excelente mi servicio funciona de maravillas GRACIAS A TODOS!
Responder Con Cita
  #5  
Antiguo 10-11-2005
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
tenog unas dudas.

¿para que sirven los servicios?

¿cuales son sus usos?

por que se que el apache y el mysql se pueden instalar
como servicios.

no encuentro para que usar servicios. ni en que usarlos
que no sea en programas como los arriba mencionados

¿en que han usado servicios,?
Responder Con Cita
  #6  
Antiguo 10-11-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post para muchas cosas..

Podes aprovechar para usarlos cuando queres que se cargue algo sin importar en que sesion estes parado, o sea antes de que pongas user y pass cuando inicias la pc por ejemplo en un windows 2000 hacer que la maquina ejecute un programa que haga algo que te interese hacer en esta instancia...

Por ejemplo no se un servicio para usar de antivirus, emm escuchar en algun puerto determinado y +++
Responder Con Cita
  #7  
Antiguo 13-02-2008
djemix djemix is offline
Miembro
 
Registrado: ago 2006
Posts: 46
Poder: 0
djemix Va por buen camino
interactuación

Todo esto me parece super interesante, pero mi problema no es un servicio que haga cosas cada cierto tiempo, sino que yo desde mi aplicación windows pueda interactuar con el.

¿Como me puedo comunicar con el servicio? En plan que le pregunte algo y me responda con otra cosa.

Espero que me podais ayudar!! Grasiassssssss
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:35:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi