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