Postagem em destaque

Código Limpo: Nomes Significativos

Imagem
Às vezes fico com um assunto na cabeça por semanas, até achar uma situação ou um exemplo que esclareça a situação. Explico: estava querendo já a algum tempo escrever sobre boas práticas de programação, e pensei em iniciar por "Nomes Significativos", para seguir a nomenclatura utilizada pelo ótimo livro Código Limpo , de Robert C. Martin.  Entretanto, ficava sempre amarrado em exemplos que pareciam ser bons, mas que ainda eu não tinha visto a utilidade prática.  Antes de continuar preciso explicar que tenho um hábito de anotar num bloco de papel todas as ideias que surgem, pois elas desaparecem com a mesma velocidade que aparecem. Para isso tenho um bloco e caneta na mesa de cabeceira (além de um no banheiro), pois esses são os lugares onde tenho mais ideias... Vai entender... Semana passada, estava com um problema bem complicado e tive uma ideia: "vou criar uma variável para indicar que quando um arquivo tiver um certo tamanho deve gravar algumas informações no log. Pois

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

Netflix não mostra ícone de streaming

Google Hacking

FTP não funciona no PHP