Ir para conteúdo
Fórum Script Brasil
  • 0

(Duvida) Não fechar o programa pelo alt+f4 e nem pelo ctr+alt+del


Dragongba

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0
Ola queria saber se há algum código para que a pessoa não consiga nem fechar o programa pelo alt+f4 e nem pelo ctr+alt+del...

Como desabilitar as teclas Alt + F4

public
  { Public declarations }
  fecha: Boolean;
  end;

implementation

{$R *.DFM}

Function GetStateK (Key: integer): boolean;
begin
  Result := Odd (GetKeyState (Key));
end;

procedure Tfrm_HIP.FormClose(Sender: TObject; var Action: TCloseAction);
begin
If Not fecha Then
Action := caNone Else
Action := caFree;
end;

procedure Tfrm_HIP.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If GetStateK (VK_LMENU) And (Key = VK_F4) Then
fecha := False;
end;

{Dica enviada por William}
Desabilitar Teclas Ctrl+Alt+Del (Ctrl+Alt+Del),(Alt+Tab), (Ctrl+Esc)
var
OldValue : LongBool;
begin
{liga a trava}
SystemParametersInfo(97, Word(True), @OldValue, 0);

{desliga a trava}
SystemParametersInfo(97, Word(False), @OldValue, 0);
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
só mais uma duvida eu coloco esses codigos no form?

claro ... no primeiro exemplo

Tfrm_HIP.FormClose ... TForm1.FormClose ( evento FormClose do seu form )

Tfrm_HIP.FormKeyDown... TForm1.FormKeyDown (evento FormKeyDowm do seu form )

no segundo pode ser num botao , ou evento active do seu form, onde voce achar mais apropriado

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

mas n deu certo aqui...n bloquio...

este codigo funciona no windows 98

Para usar no xp , você tem que modificar o registro.

Então vamos lá.

Vá lá em uses e declare Registry.

então fica assim.

Código:

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Registry;

Depois você cria a procedure, ai fica assim....

Código:

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;

**Nota: Pra quem não sabe , procedure fica logo abaixo daquele nome implemetation (lá em cima)

Feito isso agora você cria por exemplo dois butões.

Em um deles você coloca assim...

HabilitaCTRLALTDEL(True); //para habilitar

e

HabilitaCTRLALTDEL(False); // para desabilitar

Dica de Kwsty

Outra dica

http://www.mail-archive.com/delphi-br@yaho...r/msg55944.html

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...