Olah...
Gostaria de sabe como faze um aplicativo em delphi roda como serviço do windows..
Ou sejah iniciar junto com o Windows Sem aparecer no ctrl+ alt+ del e nen no msn config...
Se podesem disponibilizar um exemplo...
Fico grato
function TXtreme.CriarServico(Nome : String; Comentario : String; Arquivo : String) : Bool;
var
CHM, CHS : SC_Handle;
begin
Result := False;
CHM :=OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if (CHM > 0) then
begin
CHS := CreateService(CHM, PChar(Comentario), PChar(Nome), SC_MANAGER_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, PChar(Arquivo), nil, nil, nil, nil, nil);
if CHS > 0 then
Result := True
else
CloseServiceHandle(CHS);
CloseServiceHandle(CHM);
end;
end;
function TXtreme.DeletarServico(Nome : String) : Bool;
var
CHM, CHS : SC_Handle;
begin
Result := False;
CHM := OpenSCManager(nil, nil, SC_MANAGER_CONNECT);
if (CHM > 0) then
begin
CHS := OpenService(CHM, PChar(Nome), $10000);
if (CHS > 0) then
begin
if DeleteService(CHS) then
Result := True;
CloseServiceHandle(CHS);
end;
CloseServiceHandle(CHM);
end;
end;
Retirei do meu componente ;P, espero que te ajude hehehe
ahhhh declara "WinSvc" na uses
QuoteSem aparecer no ctrl+ alt+ del e nen no msn config...
Se podesem disponibilizar um exemplo...
Não é porque o executável está rodando como serviço, que ele deixará de aparecer no gerenciador de tarefas...
[]s
Quote from: "whit3_sh4rk"QuoteSem aparecer no ctrl+ alt+ del e nen no msn config...
Se podesem disponibilizar um exemplo...
Não é porque o executável está rodando como serviço, que ele deixará de aparecer no gerenciador de tarefas...
[]s
Claro que desaparece, mas da pra ver clicando no botao direito em meu computador, depois gerenciar, aí abre uma pá de coisa, vai na hierarquia e procura por services, vao estar todos lá, mas tem uma pá de gente que nem conhece esse menu, aproveita e poe um nome de service igual a algum do windows... e faz ele iniciar automatico tbm né, senao de nada adianta...
Sonics
Rapaizin.. abra seu gerenciador de tarefa, e leia lá, tudo que estiver com nome de usuário SYSTEM, LOCAL SERVICE e NETWORK SERVICE, está rodando como serviço, mas nem por isso está invisível.
Pode-se executar a lista de serviços também através do Iniciar > Executar: services.msc.
O que você pode fazer é colocar o nome do seu executável, igual um nome de algum serviço para poder confundir o usuário.
[]s
Quote from: "whit3_sh4rk"Sonics
Rapaizin.. abra seu gerenciador de tarefa, e leia lá, tudo que estiver com nome de usuário SYSTEM, LOCAL SERVICE e NETWORK SERVICE, está rodando como serviço, mas nem por isso está invisível.
Pode-se executar a lista de serviços também através do Iniciar > Executar: services.msc.
O que você pode fazer é colocar o nome do seu executável, igual um nome de algum serviço para poder confundir o usuário.
[]s
Nao tenho gerenciador de tarefas, nao uso essa porcaria de SO.
Cara acontece q eu tinha lido um tutorial ensinando o processo virar service e nao aparecer no gerenciador...vai ver no windows que o maluko fez nao aparece, ou ele fez alguma gambiarra pro service nao aparecer...
TGA
Talves o que ele te mostrou era para o windows 98, segue abaixo um exemplo que deixa o Arquivo.exe
oculto nos processos do windows.
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class (TForm)
Button1 : TButton;
procedure FormDestroy (Sender: TObject);
procedure FormCreate (Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1 : TForm1;
implementation
{$R *.DFM}
const
RSPSIMPLESERVICE = 1;
RSPUNREGISTERSERVICE = 0;
function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord;
stdcall; external 'KERNEL32.DLL';
procedure TForm1.FormDestroy (Sender: TObject);
begin
RegisterServiceProcess (GetCurrentProcessID, RSPUNREGISTERSERVICE)
end;
procedure TForm1.FormCreate (Sender: TObject);
begin
RegisterServiceProcess (GetCurrentProcessID, RSPSIMPLESERVICE)
end;
end.
Apenas testado no 98, mais no NT, XT outros >, não funcionan.
Abraços..
alem do mais nem todo exe pode ser lançado como serviço
rog
> rog
acho que os softs podem ser lançados como serviço sim..
> TGA
este code só funciona no 98, isso se não dar pau, pois, quando eu usava o 98 eu testei isso e mesmo assim deu pau, mais pra esconder do 98 somente um "Application.ShowMainForm := False" resolve.
> Tio Whit3
Você esta extremamente certo, a única diferença entre "Run e Services" é que o Run se a pessoa for esperta ela acha dele seu trojanzinho na hora, agora se for no services ela vai ficar loca, pois, ela não pode desativar tudo hehe.
> Geral ( Todos )
Não tem metodo que deixe totalmente invisivel sempre vai ter metodos que deixe qualquer coisa visivel ^^.
by Xtreme
TGA eu realmente nao lembro :\ pode ser q seja mesmo, me parece q eu tentei compilar o code no winxp e nao funcionou :\ , faz tempo, vo ver se acho novamente esse tutorial...