CFPA86:
Por mensajes anteriores tuyos me parece que tu objetivo es impedir que los usuarios puedan cambiar la fecha y hora del sistema.
Creo recordar que hace algún tiempo se discutió aquí un problema relacionado con impedir que los usuarios cambiaran la hora del sistema en una pc destinada al registro de empleados.
No estoy seguro de cuál fue la conclusión pero un punto que conviene observar es que aún impidiendo el acceso al reloj de
Windows y a los comandos DATE y TIME, siempre existirá la posibilidad de que el usuario logre hacer el cambio; por ejemplo bajando alguna utilería de Internet.
Me parece que en aquella ocasión alguien mencionó que lo más conveniente sería que la aplicación implementara su propio reloj.
En caso de que esto te interese puedes proceder así:
Al inicio de la aplicación grabas las hora y "tick" actuales:
Código:
var
HoraInicio: TTime;
TickInicio: DWord;
HoraInicio := Time;
TickInicio := GetTickCount();
GetTickCount devuelve el número de milisegundos que han transcurride desde que se inició el sistema (
Windows, no el solar

)
Cuando necesites conocer la hora
real la obtienes así:
Hora := IncMilliSecond(HoraInicio, GetTickCount - TickInicio);
donde IncMilliSeconds es una función de Delphi que agrega a la hora indicada el número de milisegundos especificados.
Si tu versión de Delphi no incluye esta función fácilmente la puedes hacer:
Código:
function IncMilliSecond(const Value: TTime; const MSecs: Int64): TDateTime;
const
MSecsPerDay = 86400000;
begin
Result := (Value*MSecsPerDay + MSecs)/MSecsPerDay;
end;
Lo único que debes asegurar es que la hora al inicio de la aplicación sea la correcta. El resto es simplemente sumar a dicha hora inicial el número de milisegundos que han transcurrido desde que la grabaste.
De esta manera, una vez iniciada la aplicación, el usuario puede cambiar la hora como se le antoje pero tu aplicación dará la hora correcta.
// Saludos