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
Postar um comentário