1 个不稳定版本
0.1.3 | 2020年1月1日 |
---|---|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#178 in Windows APIs
每月65 次下载
7KB
nt_version
使用未记录的NTDLL函数高效查询Windows(NT)的主版本、次版本和构建版本。需要NT 5.1(Windows XP或更高版本)的最小版本。此crate为no_std。
nt_version = "0.1"
如果构建时出现链接器错误,您可能缺少系统中的ntdll.lib
。它不包含在较旧版本的Windows SDK中,您需要安装DDK。
或者,启用回退功能,在运行时查询函数指针(但速度较慢)
nt_version = { version = "0.1", features = ["fallback"] }
用法
它只有一个函数:get,建议您显式使用它
fn main() {
let (major, minor, build) = nt_version::get();
println!("NT Version v{}.{}.{}", major, minor, build);
}
这返回NTDLL版本,它具有此编号系统。
为什么?
Microsoft自Windows 8.1以来弃用了GetVersionEx,转而使用诸如"IsWindows8Point1OrGreater"之类的函数,现在没有真正的好方法来获取操作系统版本。如果您只想获取操作系统版本而不需要任何构建号,仍然可以使用来自lmwksta.h
的NetWkstaGetInfo,但这要慢得多,并分配了一个WKSTA_INFO_100块,您必须自己释放它,它包含诸如PC名称之类的多余信息,作为Windows宽字符串。不是非常理想。
依赖关系
~175KB