 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
maxbighead Novato

Registrado: Quarta-Feira, 3 de Fevereiro de 2010 Mensagens: 14
|
Enviada: Ter Abr 13, 2010 11:34 am Assunto: Monitorar o Ctrl+Alt+Del |
|
|
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 |
|
 |
leostyles Aprendiz


Registrado: Quarta-Feira, 7 de Janeiro de 2009 Mensagens: 193 Localização: Brasilia - Distrito Federal
|
Enviada: Ter Abr 13, 2010 12:44 pm Assunto: Re: Monitorar o Ctrl+Alt+Del |
|
|
| 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 |
|
 |
maxbighead Novato

Registrado: Quarta-Feira, 3 de Fevereiro de 2010 Mensagens: 14
|
Enviada: Ter Abr 13, 2010 4:04 pm Assunto: |
|
|
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 |
|
 |
leostyles Aprendiz


Registrado: Quarta-Feira, 7 de Janeiro de 2009 Mensagens: 193 Localização: Brasilia - Distrito Federal
|
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|