GARANTIR DESCONTO

Fórum deixar sistema em primeiro plano. bloquear acesso #345388

31/08/2007

0

Gostaria de controlar por horário o acesso ao pc para o meu filho. Ele anda ficando muito no computador.
Sei que existem alguns programas na internet, mas não encontrei nenhum simples. A maioria cria conta no windows, .... não quero tudo isso!
Pretendo desenvolver então um sistema simples que irá iniciar junto com o windows. Ele ficará na barra ao lado do relógio.
Para que nos dias de semana ao chegar em determinado horário o programa irá abrir em tela cheia com um botão para desligar o computador e um outro campo que podemos informar um horário e informar uma senha para liberar se preciso um pouco o acesso ao computador para ele.
Tipo de um sistema de lanhouse. Mas não tão complexo.
Vou fazer sem banco de dados.
Mas estou com problemas de fazer com que o sistema fique em primeiro plano. E outras coisas mais....
Tentei trancar o mouse apenas no form. Mas o problema é que é só pressionar a tecla do windows e ir seguindo nos menus que o mouse libera novamente.... não deu certo...
tentei também esconder o cursos.... mas daí é só fazer osmesmos passos acima que o cursor é mostrado novamente...
Sei que está complicado de fazer...

Queria alguma sujestão de como fazer....o que recomendam???
Alguns comandos que posso utilizar....
Obrigado!


Briciosm

Briciosm

Responder

Posts

31/08/2007

Vitor Alcantara

Para colocar a sua aplicação em primeiro plano você poderia deixar o seu form com as propriedades:

Align : AlCliente;
FormStyle : FsStayOnTop
WindowState : WsMaximized
BorderIcon : []

Para fazer com que ele não perca o focu e fique sempre sobreposto você pode fazer do seguinte modo com a utilização de um Timer:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if not focused then
  Application.BringToFront;
end;


Dessa forma o seu form irá ficar sempre sobreposto aos outros, mesmo que ele utilize algum programa ele não poderá ver pois o form estara sobreposto.

Para evitar que o form se feche com ALT+F4 você pode criar uma váriavel global do tipo Boolean e setar ela como false para não fechar e True para fechar.

Coloca no evento onCloseQuery

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


Você só seta a váriavel Fechar para true caso seja digitada tal senha ou nos horários que você permita.

Agora ele poderia muito bem fechar a aplicação simplismente dando um CTRL+ALT+DEL, para evitar isso você tem que alterar o valor ´DisableTaskMgr´ para 1 da chave
´HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\SYSTEM´ do registro.

Ex:

Procedure EnableCtrlAltDel(Travar: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 Travar of
        True:
        begin
          WriteInteger(´DisableTaskMgr´,1) ;
        end;
        False:
        begin
          WriteInteger(´DisableTaskMgr´,0) ;
        end;
      end;
    end;
    CloseKey;
end;


para desabilitar utiliza EnableCtrlAltDel(True) para habilitar utiliza EnableCtrlAltDel(false).


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar