PDA

Ver la Versión Completa : Cómo saber que un equipo se ha reiniciado?


Berto2003
11-07-2006, 09:48:09
Hola a tod@s!!

Me ha surgido una pequeña duda :confused: . He mirado por los foros pero no he encontrado nada. Lo que me gustaría saber es si existe alguna API que diga el tiempo que hace que se reinició un equipo, es decir, acceder al "Proceso inactivo del sistema" de Windows para así dejarlo reflejado en un log. Espero haberme explicado bien.

Gracias por vuestra ayuda,
Saludos!!! :)

Bicho
11-07-2006, 09:54:32
Hola, en Trucomania he encontrado esta función no se si te servirá.

function Uptime: string;
var count, days, min, hours, seconds : longint;
begin
{Obtenemos milisegundos transcurridos}
Count := GetTickCount();
{Lo convertimos a dd-hh-mm-ss}
Count := Count div 1000;
Days := Count div (24 * 3600);
if Days > 0 then
Count := Count - (24 * 3600 * Days);
Hours := Count div 3600;
If Hours > 0 Then
Count := Count - (3600 * Hours);
Min := Count div 60;
Seconds := Count Mod 60;
{Damos el resultado, en una string}
Result := IntToStr(Days)+' Days '+IntToStr(Hours)+
' hours '+IntToStr(Min)+' minutes '+
IntToStr(seconds) +' seconds ';
end;

Saludos

seoane
11-07-2006, 12:31:15
Solo añadir que GetTickCount delvuelve un DWORD por lo que no puede llegar a mas de 49 dias. Eso es debido a que ni siquiera los de microsoft cuentan con que un windows este encendido tanto tiempo :D . Aunque esto parece una broma, se han dado casos de programas que dejan de funcionar o se vuelven locos al llegar a los 50 dias. Ese es el famoso bug de la funcion GetTickCount, aunque no es tanto bug si somos conscientes de que el Windows no fue diseñado para estar funcioanando tanto tiempo de forma continuada.

Lepe
11-07-2006, 12:54:11
Si necesitas saber cuando se reinició, puedes poner tu programa en el registro de Windows para que arranque siempre junto con Windows con un parámetro. De esta forma puedes identificar si el usuario ha arrancado el programa con un doble clic o si lo ha hecho junto con Windows.

No te da el tiempo que lleva encendido, pero si cuando se ha iniciado el sistema (minutos arriba, minutos abajo).

Saludos

Berto2003
11-07-2006, 13:25:45
Muchas gracias a todos!!

Voy a probarlo enseguida lo que me habeis comentado.


Gracias de nuevo. :)

Berto2003
12-07-2006, 08:36:29
Hola de nuevo!!

He probado el programa y es justo lo que necesitaba, pero claro, puestos a pensar y según comentas Lepe, es una buena idea lo de ponerlo en el registro de Windows pero, ¿concretamente en qué clave he de ponerlo? :rolleyes: Supongo que tendré que crearla personalizada para mi aplicación, ¿no? :confused:

Ea, muchas gracias.
Saludos :)

Bicho
12-07-2006, 09:04:11
Hola, como hacer que tu aplicacion arranque cuando se inicia windows (http://www.clubdelphi.com/trucos/index.php?id=68)

Espero te sirva

Saludos