Como travar o relógio do Windows?

Delphi

17/12/2003

Olá, amigos!!

Gostaria de saber de vcs se existe alguma rotina para evitar que o relógio do windows seja alterado por qualque usuário sem permissão.

Obrigado!!


Janderson

Janderson

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

17/12/2003

Colega,

A forma mais simples que encontrei foi renomear o TIMEDATE.CPL para um outro nome qualquer.


GOSTEI 0
Beppe

Beppe

17/12/2003

Evitar o mudança é impossível devido ao auxílio de qualquer programa. Mas nada impede que você realtere o horário.

Cada janela recebe uma mensagem WM_TIMECHANGE quando o horário do sistema é alterado.

Isto vai no private do form:
procedure WMTimeChange(var Message: TWMTimeChange); message WM_TIMECHANGE;


A implementação:
procedure TForm1.WMTimeChange(var Message: TWMTimeChange); message WM_TIMECHANGE;
begin
  SetSystemTime(Ultimo_Horario_Registrado);
  Message.Result := 0;
end;


Você precisa manter a variável Ultimo_Horario_Registrado. Isto pode ser feito com a ajuda de um timer. A data do sistema pode ser pega com GetSystemTime.

Dificilmente você irá manter a hora exata, mas isto é o mais perto que pode chegar.


GOSTEI 0
Janderson

Janderson

17/12/2003

VALEU, PESSOAL VCS SÃO D+! :lol: :lol: :lol: :lol:

A dica que o Aroldo Zanela mandou funcionou perfeitamente. Eu fiz uma coisa interessante: Quando eu carrego o meu sistema no oncreate do meu form principal eu renomeio o arquivo e quando o programa é fechado coloco o nome original de volta


GOSTEI 0
POSTAR