如何使用一些WinAPI函数在C++中获取Windows的启动时间?我目前正在使用命令“systeminfo”,但我正在寻找更加合适的解决方案。
如何使用一些WinAPI函数在C++中获取Windows的启动时间?我目前正在使用命令“systeminfo”,但我正在寻找更加合适的解决方案。
我查看了任务管理器的实现方式,发现它使用了ZwQuerySystemInformation(SystemTimeOfDayInformation, ...)
函数,并接收了SYSTEM_TIMEOFDAY_INFORMATION
结构体。
typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
LARGE_INTEGER BootTime;
LARGE_INTEGER CurrentTime;
LARGE_INTEGER TimeZoneBias;
ULONG TimeZoneId;
ULONG Reserved;
ULONGLONG BootTimeBias;
ULONGLONG SleepTimeBias;
} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
BootTime
是您要查找的内容。
如果想要更详细的信息,我认为可以使用 GetTickCount64
。
ZwQuerySystemInformation
在Windows 8中已不再可用(https://msdn.microsoft.com/en-us/library/windows/desktop/ms725506(v=vs.85).aspx); 此外,MSDN上建议使用的替代方法SystemTimeOfDayInformation
是CryptGenRandom
...这并不能帮助获取启动时间。 - Andy