windows获取系统启动以来的时间,使用系统API获取启动时间
创始人
2025-03-10 17:18:00
0

在Windows操作系统中,获取系统启动以来的时间是一个常见的需求。无论是为了系统监控、性能分析还是其他应用场景,了解系统自启动以来的运行时间都是非常有用的。本文将详细介绍如何在Windows平台上获取系统启动以来的时间,并提供相应的代码示例。

使用系统API获取启动时间

1. 使用NtQuerySystemInformation

通过调用NTDLL.DLL中的NtQuerySystemInformation函数,可以获取系统的详细信息,包括启动时间。以下是该函数的原型:

NTSTATUS NtQuerySystemInformation(

IN UINT SystemInformationClass,

OUT PVOID SystemInformation,

IN ULONG SystemInformationLength,

OUT PULONG ReturnLength OPTIONAL

要获取系统启动时间,需要将SystemInformationClass参数设置为SystemTimeInformation(值为3),然后解析返回的SYSTEMTIMEINFORMATION结构中的liKeBootTime成员即可。

2. 使用GetTickCount

GetTickCount函数返回自系统启动以来经过的毫秒数。这是一个非常简单且常用的方法,适用于不需要高精度时间的情况。以下是该函数的原型:

DWORD GetTickCount(void);

该函数返回的值是一个无符号整数,表示自系统启动以来经过的毫秒数。

3. 使用KeQueryTickCount

在Windows驱动开发中,可以使用KeQueryTickCount函数获取系统启动以来的滴答数。该函数返回的值是一个长整型,表示自系统启动以来经过的滴答数。以下是该函数的原型:

VOID KeQueryTickCount(

OUT PLARGEINTEGER TickCount

需要注意的是,滴答数在不同硬件环境中可能不同,因此在使用时需要结合KeQueryTimeIncrement函数获取滴答数增量。

代码示例

以下是一个使用NtQuerySystemInformation函数获取系统启动时间的Rust代码示例:

extern crate winapi;

use winapi::ntdll::NtQuerySystemInformation;

use winapi::ntdll::SystemTimeInformation;

use winapi::ntdll::SYSTEMTIMEINFORMATION;

use winapi::ntdll::LARGE_INTEGER;

fn main() {

let mut system_info = [0u8; 1024];

let result = unsafe {

NtQuerySystemInformation(

3, // SystemTimeInformation

system_info.as_mut_ptr(),

system_info.len() as u32,

std::ptr::null_mut(),

)

};

if result == 0 {

let boot_time = (system_info.as_ptr() as const LARGE_INTEGER);

println!(


相关内容

热门资讯

安卓如何弄系统配音,安卓系统配... 你有没有想过,你的安卓手机也能变得像电影里的配音演员一样,声音抑扬顿挫,引人入胜?没错,今天就要来教...
安卓系统维护怎么解除,轻松解除... 手机用久了是不是感觉越来越慢,安卓系统维护也时不时跳出来,让人有点头疼呢?别急,今天就来手把手教你如...
安卓系统怎么无限刷机,轻松实现... 你有没有想过,你的安卓手机是不是也能像新的一样,永远充满活力呢?没错,今天就要来跟你聊聊这个神奇的话...
闹钟游戏推荐安卓系统,解锁全新... 早晨的第一缕阳光透过窗帘,是不是又让你从美梦中惊醒?别急,今天我要给你推荐几个超好用的闹钟游戏,让你...
安卓怎样设置双系统,轻松实现一... 你有没有想过,手机里装两个系统,一个用来工作,一个用来娱乐,那感觉是不是就像拥有了两个世界?没错,这...
苹果系统能送安卓礼物,安卓用户... 你知道吗?在这个科技飞速发展的时代,手机已经成为了我们生活中不可或缺的一部分。而说到手机,不得不提的...
安卓系统5赫兹在哪设置,轻松找... 你有没有发现,安卓系统里的设置选项有时候就像迷宫一样,让人摸不着头脑?今天,我就来帮你解开这个谜团,...
安卓系统的王者怎么转区,畅享游... 你有没有想过,你的安卓手机里的王者英雄,突然想换个战场大显身手呢?别急,今天就来手把手教你如何把你的...
安卓修改系统语言设置,安卓系统... 你有没有想过,手机里的语言设置竟然也能玩出花来?没错,今天就要来和你聊聊安卓修改系统语言设置的那些事...
安卓平板镜像系统在哪,安卓平板... 你有没有想过,你的安卓平板电脑竟然可以变成一个强大的电脑工作站?没错,这就是安卓平板镜像系统的神奇之...
安卓手机刷谷歌系统下载,轻松下... 你有没有想过,你的安卓手机能不能也体验一把谷歌系统的魅力呢?没错,就是那个流畅、安全、充满创新精神的...
安卓系统没有无线调试,探索解决... 最近是不是在用安卓手机或者平板,突然发现一个让人头疼的问题——无线调试怎么也找不到?别急,今天就来给...
安卓10小米升级系统,畅享智能... 你知道吗?最近安卓10系统的大潮席卷而来,小米的粉丝们可是兴奋得不得了!这不,小米官方宣布,旗下的多...
安卓7.0的系统快不快,速度升... 你有没有发现,自从手机升级到安卓7.0系统后,感觉速度好像变快了?这不,今天就来聊聊这个话题,看看安...
港版安卓怎么更新系统,港版安卓... 你那港版安卓手机是不是已经有点儿“老态龙钟”了?别急,今天就来给你支个招,让你的手机焕发第二春!那就...
安卓系统停运咋办,安卓系统停运... 亲爱的手机用户们,最近是不是被安卓系统停运的消息搞得有点慌张?别急,让我来给你详细说说这个事儿,让你...
安卓10系统以上手机,新功能与... 你有没有发现,最近手机界可是热闹非凡呢!安卓10系统以上的手机纷纷亮相,让人眼花缭乱。今天,就让我带...
手机安卓系统设置键,深度解析设... 你有没有发现,手机里的安卓系统设置键,这个小不点,竟然藏着大大的秘密呢?今天,就让我带你一探究竟,看...
鸿蒙3系统是安卓12,基于安卓... 你知道吗?最近手机圈子里可是炸开了锅,因为华为的新系统鸿蒙3来了,而且它竟然是基于安卓12的!是不是...
安卓系统降低到4.4,回顾经典... 你知道吗?最近安卓系统界可是掀起了一阵小小的风波呢!那就是——安卓系统版本降低到4.4。这可不是一件...