20/02/2006

Controlar a mudança de Data do Windows

Tem como controla a mudança de Data do Windows para as 06:00 hs
ao invés de 00:00 hs

o sistema gera arquivos com a data na nomenclatura e apesar de após as 00:00 hs já ser um novo dia mesmo, no tipo de processamento que meu sistema faz, apenas após as 06:00 hs que se inicia um novo dia.

* ou eu controla a mudança de data do windows
* ou crio uma solução compativel

Bom galera, qualquer ajuda ou sugetão será bem vinda !!!!!


até mais !!!!!


Fabiano Góes

Respostas

20/02/2006

Paullsoftware

para controlar a mudança de hora/data do windows pode criar um serviço, semelhante ao que faço no meu sistema de lan-house... onde tenho um Ttimer que verifica a cada minuto se a hora é igual ou maior a anterior e trato de acordo com a minha necessidade, no seu caso pode colocar um time para controlar apenas quando chegar a hora desejada, e em seguida, mudar para a de sua escolha use essa torina abaixo...

var
SystemTime : TSystemTime;
Dia, Mes, Ano, Hora, Min, Sec, Mil: Word;

Passar as informações para as variaveis Dia, Mes, Ano, Hora, Min, Sec, Mil: Word;


SystemTime.wYear := Ano; 
SystemTime.wMonth := Mes; 
SystemTime.wDay := Dia; 
SystemTime.wHour := Hora; 
SystemTime.wMinute := Min; 
SystemTime.wSecond := Sec; 
SystemTime.wMilliseconds := Mil; 

Modificar a data / hora 
SetSystemTime (SystemTime);



Responder Citar

20/02/2006

Fabiano Góes

PaullSoftware,

O meu sistema gera arquivos a todo momento se passeando na data do windows.
A sua dica bloqueia o windows de mudar a data quando for 00:00 hs ?


Valeu pela atenção !!!!


Responder Citar

21/02/2006

Paullsoftware

A sua dica bloqueia o windows de mudar a data quando for 00:00 hs ?


Não, a dica serve para vc mudar a hora do sistema, tipo...
como eu te disse, vc faz uma rotina para checar a data/hora do sistema quando ele chegar em uma determinada data/hora que vc espera pede para ele mudar para outra de sua escolha, tipo:

Ex.:

Procedure TestaHora(Dia, Mes, Ano, Hora, Min, Sec, Mil: Word);
var SystemTime : TSystemTime;
begin
SystemTime.wYear := Ano;
SystemTime.wMonth := Mes;
SystemTime.wDay := Dia;
SystemTime.wHour := Hora;
SystemTime.wMinute := Min;
SystemTime.wSecond := Sec;
SystemTime.wMilliseconds := Mil;
//Modificar a data / hora
SetSystemTime (SystemTime);
end;


para usar:
TestaHora(01,01,2006,07,00,20,00);

vc pode adaptar para as suas necessidades


Responder Citar