segunda-feira, 11 de abril de 2016

Como habilitar ou desabilitar o Gerenciador de Tarefas do Windows usando Delphi

O trecho de código nesta dica mostra como podemos usar Delphi e a API do Windows para habilitar ou desabilitar o Gerenciador de Tarefas. O Gerenciador de Tarefas é invocado quando usamos a combinação Ctrl+Alt+Del e permite ao usuário visualizar os aplicativos e processos sendo executados no momento. Além disso, o usuário pode selecionar um determinado processo e finalizá-lo.

Em algumas situações gostaríamos que o usuário não tivesse acesso ao Gerenciador de Tarefas. Veja como podemos desabilitá-lo no evento Click de um botão:

procedure TForm3.Button5Click(Sender: TObject);
var
  reg: TRegistry;
begin
  // uses Registry

  // vamos criar uma instância da classe TRegistry
  reg := TRegistry.Create;

  // vamos abrir a chave que contém a entrada DisableTaskMgr
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\system',
    True);

  // vamos desabilitar o Gerenciador de Tarefas
  // se o valor fornecido for 1, o gerenciador será desabilitado
  reg.WriteString('DisableTaskMgr', '1');
  reg.CloseKey;

  // para habilitar basta excluir o valor da entrada
  //reg.DeleteValue('DisableTaskMgr');
  //reg.CloseKey;

  // vamos liberar o registro 
  reg.Free;
end;

Agora, quando o usuário pressionar Ctrl+Alt+Del ele verá a mensagem "O 'Gerenciador de tarefas' foi desabilitado pelo administrador". É importante observar que, no Windows XP, o usuário pode habilitar ou desabilitar o Gerenciador de tarefas simplesmente abrindo uma janela de terminal e digitando "gpedit.msc". Este comando abrirá o Editor de Diretivas de Grupo e permitirá ao usuário habilitar ou desabilitar o gerenciador de tarefas novamente.

Note que para habilitar o Gerenciador de Tarefas novamente só precisamos remover os comentários do trecho:

// para habilitar basta excluir o valor da entrada
//reg.DeleteValue('DisableTaskMgr');
//reg.CloseKey;

Nenhum comentário:

Postar um comentário