ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Monitorar o Ctrl+Alt+Del

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
maxbighead
Novato
Novato


Registrado: Quarta-Feira, 3 de Fevereiro de 2010
Mensagens: 14

MensagemEnviada: Ter Abr 13, 2010 11:34 am    Assunto: Monitorar o Ctrl+Alt+Del Responder com Citação

Pessoal, estou com a seguinte necessidade.

Preciso que meu programa simule a digitação de uma combinação de teclas ao perceber que as Teclas Ctrl+Alt+Del foi foram ativadas.

Explico : Tenho um programa que fica o dia todo gerando relatórios em um computador separado. Porém, preciso achar uma forma de evitar que alguém possa ter acesso aos arquivos desse computador (a não ser o usuário que está logado).

Então encontrei a seguinte solução : Ao clicar no botão para iniciar a geração dos relatórios, eu executo um código que desabilita todas as entradas do mouse e do teclado.

E, ao final do processo, o código HABILITA o mouse e o teclado, mas também simula a digitação das teclas : WINDOWS+L (Que chama a tela de logon do usuário, onde o mesmo só pode entrar novamente de posse da senha).

Até aí tudo bem, eu garanto que apenas o usuário que tenha a senha do último logon poderá ter acesso ao micro.

Porém, o código que desabilita todas as entradas do mouse e teclado, só não desabilita UM ÚNICO CONJUNTO de teclas. Que é o CTRL+ALT+DEL.

Isso até que não é tão incoveniente, pois seria uma forma de voltar a ter acesso ao micro se, por acaso, no meio do processo acontecesse algum bug.

Mas, ao teclar o conjunto de teclas, o computador volta a receber entradas do mouse e teclado, deixando assim o computador vulnerável novamente.

Então a solução seria : Ao perceber que o Ctrl+Alt+Del foi acionado, o programa, automaticamente, acionasse a tela de logon (Através do atalho WINDOWS+L ou acionando o botão BLOQUEAR da tela que aparece ao se acionar o Ctrl+Alt+Del).


Ufa !!! é isso galera, quem tiver alguma dica, ajudaê !!!

Desde já agradeço a colaboração.

Abraços,

MaxBigHead.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leostyles
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 7 de Janeiro de 2009
Mensagens: 193
Localização: Brasilia - Distrito Federal

MensagemEnviada: Ter Abr 13, 2010 12:44 pm    Assunto: Re: Monitorar o Ctrl+Alt+Del Responder com Citação

maxbighead escreveu:
Pessoal, estou com a seguinte necessidade.

Preciso que meu programa simule a digitação de uma combinação de teclas ao perceber que as Teclas Ctrl+Alt+Del foi foram ativadas.

Explico : Tenho um programa que fica o dia todo gerando relatórios em um computador separado. Porém, preciso achar uma forma de evitar que alguém possa ter acesso aos arquivos desse computador (a não ser o usuário que está logado).

Então encontrei a seguinte solução : Ao clicar no botão para iniciar a geração dos relatórios, eu executo um código que desabilita todas as entradas do mouse e do teclado.

E, ao final do processo, o código HABILITA o mouse e o teclado, mas também simula a digitação das teclas : WINDOWS+L (Que chama a tela de logon do usuário, onde o mesmo só pode entrar novamente de posse da senha).

Até aí tudo bem, eu garanto que apenas o usuário que tenha a senha do último logon poderá ter acesso ao micro.

Porém, o código que desabilita todas as entradas do mouse e teclado, só não desabilita UM ÚNICO CONJUNTO de teclas. Que é o CTRL+ALT+DEL.

Isso até que não é tão incoveniente, pois seria uma forma de voltar a ter acesso ao micro se, por acaso, no meio do processo acontecesse algum bug.

Mas, ao teclar o conjunto de teclas, o computador volta a receber entradas do mouse e teclado, deixando assim o computador vulnerável novamente.

Então a solução seria : Ao perceber que o Ctrl+Alt+Del foi acionado, o programa, automaticamente, acionasse a tela de logon (Através do atalho WINDOWS+L ou acionando o botão BLOQUEAR da tela que aparece ao se acionar o Ctrl+Alt+Del).


Ufa !!! é isso galera, quem tiver alguma dica, ajudaê !!!

Desde já agradeço a colaboração.

Abraços,

MaxBigHead.


Vai em uses e declare Registry.
então fica assim.

Código:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Registry;


Crie uma Procedure.


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;




Feito isso agora você cria por exemplo dois butões.
Em um deles você coloca assim...

Código:
HabilitaCTRLALTDEL(True); //para habilitar


e

para desabilitar
Código:
HabilitaCTRLALTDEL(False); //
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
maxbighead
Novato
Novato


Registrado: Quarta-Feira, 3 de Fevereiro de 2010
Mensagens: 14

MensagemEnviada: Ter Abr 13, 2010 4:04 pm    Assunto: Responder com Citação

Caro Leo,

neste caso estamos HABILITANDO ou DESABILITANDO o CTRL+ALT+DEL. E não é o que preciso.

Preciso que ele fique HABILITADO.

Porém, que quando ele seja ativado, o sistema chame a tela de logon.


Por exemplo, imaginemos o seguinte código :

if (CTRL+ALT+DEL = FOI ATIVADO) then
Begin
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY or 0, 0);
keybd_event(76, 0, 0, 0); //DIGITA A LETRA "L"
keybd_event(VK_LWIN, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
end;

Ou seja, se eu conseguir identificar que a tela do CTRL+ALT+DEL foi ativada, basta digitar a combinação de teclas WIN+L .

É isso !
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leostyles
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 7 de Janeiro de 2009
Mensagens: 193
Localização: Brasilia - Distrito Federal

MensagemEnviada: Ter Abr 13, 2010 6:32 pm    Assunto: Responder com Citação

Veja esse artigo:

http://www.planetadelphi.com.br/dica/6901/Capturar%20teclas%20digitadas%20em%20qualquer%20local%20do%20windows,%20mesmo%20fora%20do%20form%20principal%20%28correcao%29

talvez abra sua mente!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB