Windows NT/2000系统中如何获取系统的启动时间
2007-08-29 08:27
1056 查看
NTDLL.DLL中有很多鲜为人知的API函数,这些函数非常有用。本文将介绍用NtQuerySystemInformation来获取Windows NT/2000每次启动的时间记录。用这个函数几乎可以得到任何的本地系统信息。其原型如下:
NTSYSAPI
NTSTATUS
NTAPI
NtQuerySystemInformation (
IN UINT SystemInformationClass, // 信息类型
OUT PVOID SystemInformation, // 缓冲指针
IN ULONG SystemInformationLength, // 缓冲的字节大小
OUT PULONG ReturnLength OPTIONAL // 写入缓冲的字节数
);
第一个参数是请求的信息类型。这个参数可以有许多值。为了得到系统启动时间,我们只用其中的一个值:SystemTimeInformation(3)。
如果,第一个参数是SystemTimeInformation,则第二个参数必须是一个SYSTEM_TIME_INFORMATION结构指针。
typedef struct
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SYSTEM_TIME_INFORMATION;
这个结构中第一个成员是liKeBootTime就是我们所要的系统被启动的时间(以毫秒计)。
LONG status;
SYSTEM_TIME_INFORMATION Sti;
status = NtQuerySystemInformation(SystemTimeInformation,&Sti,sizeof(Sti),0);
实例代码下载
NTSYSAPI
NTSTATUS
NTAPI
NtQuerySystemInformation (
IN UINT SystemInformationClass, // 信息类型
OUT PVOID SystemInformation, // 缓冲指针
IN ULONG SystemInformationLength, // 缓冲的字节大小
OUT PULONG ReturnLength OPTIONAL // 写入缓冲的字节数
);
第一个参数是请求的信息类型。这个参数可以有许多值。为了得到系统启动时间,我们只用其中的一个值:SystemTimeInformation(3)。
如果,第一个参数是SystemTimeInformation,则第二个参数必须是一个SYSTEM_TIME_INFORMATION结构指针。
typedef struct
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SYSTEM_TIME_INFORMATION;
这个结构中第一个成员是liKeBootTime就是我们所要的系统被启动的时间(以毫秒计)。
LONG status;
SYSTEM_TIME_INFORMATION Sti;
status = NtQuerySystemInformation(SystemTimeInformation,&Sti,sizeof(Sti),0);
实例代码下载
相关文章推荐
- Windows NT/2000系统中如何获取系统的启动时间(zz)
- [转载]Windows 2000系统中如何获取系统的启动时间
- How to know windows last boot time? -如何知道Windows系统上次启动时间?
- Windows系统获取系统的启动时间
- 用VB得到windows系统安装时的时间(for NT,2000,XP,..)
- 用VB得到windows系统安装时的时间(for NT,2000,XP,..)
- c++ 如何获取系统时间
- How Do Windows NT System Calls REALLY Work?--Windows NT的系统调用究竟是如何工作的?
- Windows中如何获取键盘和鼠标处于空闲状态的时间
- C++获取系统时间如何插入到MySQL里面的datetime型属性中
- 如何获取系统时间并与输入的时间进行对比
- 如何解决linux与windows双系统下时间的同步
- 如何读取Windows系统事件日志(获得上次关机时间、本次开机时间等)
- 如何使用 Windows NT boot loader 来启动 Linux
- Linux下如何查看系统启动时间和运行时间
- 如何关闭本地和远程NT/2000系统进程
- 如何解决 Windows 和 Manjaro 双系统时间差8小时的问题
- Linux下如何查看系统启动时间和运行时间以及安装时间
- Mysql---如何设置字段自动获取当前系统时间及主键自增
- 如何修正因Windows和Linux或者Mac双系统引起的系统时间错误