Estimado,

- pra desabilitar/habilitar ctrl+alt+del (não esqueca de dar um USES
Registry, senao dá pau)

procedure TForm1.EnableCTRLALTDEL(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;

- testando desabilitar ctrl+alt+del
procedure TForm1.Button1Click(Sender: TObject);
begin
  EnableCTRLALTDEL(False);
end;
 

- testando habilitar ctrl+alt+del
procedure TForm1.Button2Click(Sender: TObject);
begin
  EnableCTRLALTDEL(True);
end; 


- pra desligar
function DesligarMeuWindows(RebootParam: Longword): Boolean;
var
  TTokenHd: THandle;
  TTokenPvg: TTokenPrivileges;
  cbtpPrevious: DWORD;
  rTTokenPvg: TTokenPrivileges;
  pcbtpPreviousRequired: DWORD;
  tpResult: Boolean;

const
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';

begin
  if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
    tpResult := OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES
or TOKEN_QUERY, TTokenHd);
    if tpResult then
    begin
      tpResult := LookupPrivilegeValue(nil,
SE_SHUTDOWN_NAME,TTokenPvg.Privileges[0].Luid);
      TTokenPvg.PrivilegeCount := 1;
      TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      cbtpPrevious := SizeOf(rTTokenPvg);
      pcbtpPreviousRequired := 0;

      if tpResult then
        Windows.AdjustTokenPrivileges(TTokenHd, False, TTokenPvg,
cbtpPrevious,

      rTTokenPvg, pcbtpPreviousRequired);
    end;
  end;
  Result := ExitWindowsEx(RebootParam, 0);
end;

Chame a função assim:

- testando desligar:
DesligarMeuWindows(EWX_SHUTDOWN or EWX_FORCE);

- testando reiniciar:
DesligarMeuWindows(EWX_REBOOT or EWX_FORCE);


Fonte:GoogleMother Forever


---
[]'s

Alexandre 

Frase da semana: “O fracasso é a oportunidade de começar de novo
inteligentemente.” (Henry Ford)
Frase de la semana: "El fracaso es la oportunidad de comenzar de nuevo con
inteligencia." (Henry Ford)
-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de william.designer
Enviada em: terça-feira, 27 de novembro de 2007 16:49
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Re: SOCORRO URGENTE:: Travar teclas e desligar

Primeiro criei uma variavel global
Fechar:Boolean=False

depois criei o seguinte procedimento no OnCloseQuery

procedure TFrmNome.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
canclose:=Fechar;
end;

isto impede o uso do alt+f4, mas nao consigo bloquear o 
alt+ctrl+del, o alt+tab.

será que pode me ajudar quanto a isso...
Outra coisa será que alguem pode me passar um script para desligar o
computador.preciso deste script para colocar em um botão se alguem puder me
ajudar agradeço muito.



--- Em delphi-br@yahoogrupos.com.br, "Guionardo Furlan" 
<[EMAIL PROTECTED]> escreveu
>
> Hmm
> Vc pode começar pelo evento OnCloseQuery do form.
> 
> Em 27/11/07, william.designer <[EMAIL PROTECTED]> escreveu:
> >
> >
> > Olá pessoal estou precisando de ajuda criei um formulario que
> >  inicializa quando se inicia o windows, tenho alguns botões 
dentre eles
> >  está o botão desligar alguem pode me passar um código para 
quando
> >  clicar neste botão desligar o computador. outra coisa é que o 
usuário
> >  nao podera fechar o formulario usando ALT+F4, CTRL+ALT+DEL, 
TECLA
> >  WINDOWS, ALT+TAB,
> >  será que alguem pode me ajudar nesta dúvida o pior é que tenho 
apenas
> >  uma semana para entregar o meu projeto e nem sei por onde 
começar
> >  se puderem me ajudar
> >
> 
> -- 
> Timeo hominem unius libri
> Cogito ergo sum - Carpe diem
> 
> []s
> Guionardo Furlan
> http://guionardo.blogspot.com
>




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Links do Yahoo! Grupos

 

Responder a