Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 07 de Setembro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
66 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Impedindo a Finalização da Aplicação (CTRL+ALT+DEL/TaskManager) no XP
Publicado por lexotan : Terça, Agosto 31, 2004 - 12:54 GMT-3 (15798 leituras)
Comentários 13 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Procedimento que impede sua aplicação de ser finalizada pelo TaskManager (Gerenciador de Tarefas) do Windows XP.

    Salve Pessoal!

    Esta dica visa solucionar, ou pelo menos dar uma boa idéia de como impedir que o usuário invoque o Gerenciador de Tarefas do Windows XP e finalize um aplicativo ou serviço.
 

    Existem muitos métodos espalhados por aí utilizados para impedir o usuário de finalizar o programa com a combinação CTRL+ALT+DEL... e alguns outros que impedem a aplicação de ser exibida na lista de processos do Windows, utilizando chamadas externas à função RegisterServiceProcess da dll Kernel32. O problema é que essa função não é encontrada nas versões mais recentes do Windows, o que torna impossível utiliza-la para impedir que um programa seja exibido na lista de processos ativos. A extensão do problema é maior ainda quando tentamos simplesmente desativar o conjunto CTRL+ALT+DEL do aplicativo, ou mesmo tentar enganar o Windows, forçando a aplicação a aparecer como um Screen-Saver...
 

    Assim, se você quer esconder o seu programa dos sistemas compatíveis com o Windows NT (o 2000 e o XP) você precisará trabalhar com o registro...
 

    O procedimento HabilitaCTRLALTDEL aceita um valor booleano para o parâmetro YesNo. Se você envia um valor False como parâmetro, e o código é executado, quando o usuário pressiona a combinação CTRL + ALT + DEL, o Gerenciador de Tarefas (Task Manager) será desabilitado, enviando a mensagem padrão. Então, eis aí o código:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Adicione a unit Registry no seu projeto
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Como usar:

Você poderá iniciar e finalizar o procedimento respectivamente nos eventos OnCreate e OnDestroy do seu formulário principal:

procedure TForm1.FormCreate(Sender: TObject);
begin
  HabilitaCTRLALTDEL(False);
  // Desativa a combinação CTRLALTDEL. Desativa também o Gerenciador de Tarefas no computador com a aplicação executada;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.FormDestroy(Sender: TObject);
begin
  HabilitaCTRLALTDEL(True);
  // Habilita o conjunto de teclas, bem como o Gerenciador de Tarefas;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Insira o procedimento HabilitaCTRLALTDEL na sessão implementation do form, como segue abaixo:


procedure HabilitaCTRLALTDEL(YesNo : boolean) ;
const
  sRegPolicies = '\Software\Microsoft\Windows\CurrentVersion\Policies';
begin
  with TRegistry.Create do
  try
    RootKey:=HKEY_CURRENT_USER;
    if OpenKey(sRegPolicies+'\System\',True) then
    begin
      case YesNo of
      False:
      begin
        WriteInteger('DisableTaskMgr',1) ;
      end;
      True:
      begin
        WriteInteger('DisableTaskMgr',0) ;
      end;
    end;
  end;
  CloseKey;
  if OpenKey(sRegPolicies + '\Explorer\',True) then
  begin
  case YesNo of
  False:
  begin
    WriteInteger('NoChangeStartMenu',1) ;
    WriteInteger('NoClose',1) ;
    WriteInteger('NoLogOff',1) ;
  end;
  True:
  begin
    WriteInteger('NoChangeStartMenu',0) ;
    WriteInteger('NoClose',0) ;
    WriteInteger('NoLogOff',0) ;
  end;
  end;
  end;
  CloseKey;
  finally
  Free;
  end;
end;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    E é isso ai, salve o seu projeto e rode o programa. Faça o teste apertando a tecla Ctrl+Alt+Del. Se tudo deu certo, o Windows exibirá uma mensagem de erro padrão, informando que o Gerenciador de Tarefas foi desativado. Você pode até mesmo tentar executar o aplicativo do Gerenciador de tarefas, o arquivo taskmgr.exe.

 Espero que o artigo seja útil a vocês!



Observação: Matheus Venâncio
venancio@advancecci.com.br


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: nivaldin : Jan 25, 2005 - 04:06
(Informações sobre o membro | Enviar uma mensagem) http://
Amigao, aki nao funcionou de jeito nenhum... fiz tudo como esta no POST mas nao deu certo, copiei e colei no programa e nao deu certo, uso WINXP


por: bylindoso : Fev 28, 2005 - 01:50
(Informações sobre o membro | Enviar uma mensagem)
MEU AMIGO! MUITO OBRIGADO! EU PASSEI VÁRIAS NOITES ACORDADO PROCURANDO ISSO! GRAÇAS A DEUS VC ME DEU ESSE DESCANSO! Vc sabe como eu faço pra bloquear teclas tbm? Preciso bloquear CTRL + ALT! meu e-mail é bylindoso@yahoo.com.br


por: brunotec : Jun 25, 2005 - 04:15
(Informações sobre o membro | Enviar uma mensagem) http://
Pô muito bom, faz tempo que eu estou atras deste código mas não funcionava pra XP, agora esse caiu como uma luva


por: fi.silva : Ago 08, 2005 - 12:00
(Informações sobre o membro | Enviar uma mensagem)
muito bom mesmo heim.. achei o bloqueio de alt+f4 queria o código das teclas ctrl, esc, tecla do windows "e" se alguem tiver por favor me mande


por: an.der.son (anderson.ol@gmail.com) : Jan 31, 2006 - 05:42
(Informações sobre o membro | Enviar uma mensagem)
Putz.. nem acredito, seu artigo tem dois anos e ainda faz sucesso....
Perfeita esta dica...
Vlw por compartilhar...

Abraços


por: NW_Iroman : Abr 29, 2006 - 01:43
(Informações sobre o membro | Enviar uma mensagem)
Estou tentando utilizar esse codigo, mas naum está funcionando, axo q deve ser por causa dessa unit Registry, é só eu criar ou tenhu q baixa-la ??


por: dcts : Mai 03, 2006 - 11:56
(Informações sobre o membro | Enviar uma mensagem)
Oi. o codigo funciona perfeitamente no windows xp tambem. Mas eu ainda preciso de mais um detalhe, como posso ocultar a barra do menu iniciar do windows e a barra de ferramentas, ou pelo menos bloqueá-las pra que o usuário não possa mexer ? estou precisando muito disso, ficar muito agradecido se pudesse me ajudar. Meu email é daniel_tostes@hotmail.com


por: showing : Nov 05, 2006 - 08:16
(Informações sobre o membro | Enviar uma mensagem)
Parceiro, é isso aí, funcionou 100% d;-)


por: moreirapontocom (moreirapontocom@gmail.com) : Fev 19, 2009 - 03:45
(Informações sobre o membro | Enviar uma mensagem)
ô meu amigo!!!
Funcionou certinho aqui!!
Brigadão!!


por: herry2009 (edleyrocha@hotmail.com) : Jan 21, 2010 - 02:51
(Informações sobre o membro | Enviar uma mensagem) http://http://
Amigo to rodando windows 7 e funcionou sem problemas ...


por: C.J. (cjperes@yahoo.com.br) : Mar 12, 2011 - 06:55
(Informações sobre o membro | Enviar uma mensagem) http://
muito boa dica, fucionou legal aqui! parabens!
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados