Lista de serviços do Windows

Esses dias fiz algumas alterações na inicialização de alguns serviços do Windows e depois não lembrava mais quais eu tinha habilitado/desabilitado. Para resolver esse problema, fiz um pequeno programa em Delphi que salva o status de inicialização de todos os serviços. Depois de compilá-lo, basta executar diretamente no Prompt de Comando.

program SaveSvc;

{$APPTYPE CONSOLE}

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;

var
reg : TRegistry;
list: TStringList;
arq: text;
i, n: integer;
nomeArquivo: string;

begin
if paramstr(1) <> '' then
nomeArquivo := paramstr(1)
else
nomeArquivo := 'services.reg';

// cria a lista, vazia, em memória
list := TStringList.Create;

// cria o registro
reg := TRegistry.Create;

// localização da chave
reg.RootKey := HKEY_LOCAL_MACHINE;

// abre a chave dos serviços
reg.OpenKeyReadOnly('\SYSTEM\CurrentControlSet\Services') ;

// popula a lista com todos os serviços
reg.GetKeyNames(list) ;
assignFile(arq, nomeArquivo);
rewrite(arq);
writeln(arq, 'Windows Registry Editor Version 5.00');
writeln(arq, '');

// todos os serviços
for i := 0 to list.Count - 1 do begin
try
// tenta abrir cada um dos serviços
if reg.OpenKeyReadOnly('\SYSTEM\CurrentControlSet\Services\' + list[i]) then
// se existe o valor "Start"
if reg.ValueExists('Start') then begin
// lê o valor da chave
n := reg.ReadInteger('Start');
writeln(arq, '[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\' + list[i] + ']');
writeln(arq, '"Start"=dword:0000000' + inttostr(n));
writeln(arq, '');
end;
except
end;
end;

// Descarrega o buffer
Flush(arq);

// Fecha o arquivo
Close(arq);

end.

Comentários

Postagens mais visitadas deste blog

Como aprender a programar

Netflix não mostra ícone de streaming

Google Hacking