Existe-t-il un moyen simple d'obtenir la disponibilité d'un système en utilisant C #?
Réponses
Trop de publicités?Je suis un peu en retard, mais un autre moyen simple consiste à utiliser la fonction GetTickCount64 , qui est disponible à partir de Windows Vista et ne déborde pas comme le fait GetTickCount:
public static TimeSpan GetUpTime()
{
return TimeSpan.FromMilliseconds(GetTickCount64());
}
[DllImport("kernel32")]
extern static UInt64 GetTickCount64();
System.Environment.TickCount obtient le nombre de millisecondes depuis le redémarrage du système.
Attention cependant, il s'agit d'un Int32 qui débordera après 24,9 jours et deviendra négatif. Voir les remarques sur les documents MDSN.
La façon la plus simple et appropriée de le faire est
public static TimeSpan GetUptime()
{
ManagementObject mo = new ManagementObject(@"\\.\root\cimv2:Win32_OperatingSystem=@");
DateTime lastBootUp = ManagementDateTimeConverter.ToDateTime(mo["LastBootUpTime"].ToString());
return DateTime.Now.ToUniversalTime() - lastBootUp.ToUniversalTime();
}