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!
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
Curtir tópico
+ 0
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:
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
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:
para desabilitar utiliza EnableCtrlAltDel(True) para habilitar utiliza EnableCtrlAltDel(false).
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
Clique aqui para fazer login e interagir na Comunidade :)