BlogThis! Compartilhe no Twitter Compartilhar no Facebook Promova este post no orkut Share to Google Buzz
Mostrando postagens com marcador Delphi. Mostrar todas as postagens
Mostrando postagens com marcador Delphi. Mostrar todas as postagens

Impedindo a Finalização da Aplicação (CTRL+ALT+DEL/TaskManager)



Impedindo a Finalização da Aplicação (CTRL+ALT+DEL/TaskManager) no xp e no windows 7 no vista etc
Portal AH BLOGS

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!
O AH não visa fins lucrativos nem tem como objetivo reproduzir as obras. Nosso unico objetivo é ampliar a divulgação do material aqui exposto. Agradecemosa compreensão.