aardio 文档
aardio 范例: 系统版本信息
//系统版本信息
//相关范例: 范例\COM 组件\WMI\获取系统信息;范例\操作系统\硬件信息\查询硬件信息
import console;
import win.version;
import win.versionEx;//win.versionEx 指向 win.version 并增加了部分版本信息
import sys.info;
import process;
//用 win.version 获取系统版本
//console.dumpJson(win.version);
console.log( win.version.format() ); //format 函数用于返回格式类似 winver 的版本信息
console.more(1,true);
//使用 aardio 提供的全局常量检测系统版本,这种方法最快
console.log( _WIN10_LATER ? "WIN10以上系统" : "WIN10以下系统")
console.log( _WIN7_LATER ? "WIN7以上系统" : "WIN7以下系统")
console.log( _WINXP ? "WIN XP" : "XP以上系统")
console.log( _WINE ? "WINE" : "非 WINE 环境")
console.printf("系统版本号:%d.%d.%d",_WIN_VER_MAJOR, _WIN_VER_MINOR, _WIN_VER_BUILD )
console.more(1,true);
/*
import win.versionVerify;
console.log( win.versionVerify.isWin11Later() );
*/
console.log("用 NetWkstaGetInfo 获取系统版本")
::NetApi32 := raw.loadDll("NetApi32")
var info = {pointer ptr}
::NetApi32.NetWkstaGetInfo( null,100,info)
var versionInfo = raw.convert(info.ptr,{
INT platformId; // PLATFORM_ID_NT 500 总是这个值
ustring computername;
ustring langroup;
INT verMajor;
INT verMinor;
});
console.dumpJson(versionInfo);
console.more(1,true);
console.log("用 KUSER_SHARED_DATA 获取系统版本")
var shareDataVersion = raw.convert( topointer(0x7FFE0000+0x260), {
INT NtBuildNumber;
int NtProductType;
BYTE ProductTypeIsValid;
BYTE Reserved0;
WORD NativeProcessorArchitecture;
INT NtMajorVersion;
INT NtMinorVersion;
} )
console.dumpJson(shareDataVersion.NtMajorVersion
+ "." + shareDataVersion.NtMinorVersion
+ "." + shareDataVersion.NtBuildNumber
)
console.more(1,true)
if( 1 == ::Kernel32.GetFirmwareEnvironmentVariableW(
"","{00000000-0000-0000-0000-000000000000}",null,0)
){
console.log("系统使用传统BIOS启动")
}
else {
console.log("系统使用UEFI启动")
}
console.more(1)
::Secur32 := raw.loadDll("Secur32")
getUserNameEx = function(format){
var name = ..raw.buffer(0x202);
if( ::Secur32.GetUserNameExW(format,name,{INT size=0x101}) ) return ..string.fromUtf16(name,,-1);
}
import sys;
console.log("登录用户名:",sys.getUserName())
console.log("登录用户显示名称(Full Name / Display Name):",getUserNameEx(3/*NameDisplay*/))
console.log("登录用户域名称:",getUserNameEx(2/*NameSamCompatible*/))
import com.wmi;
import win.reg;
getProductKey = function(){
var productKey = com.wmi.get("softwarelicensingservice","OA3xOriginalProductKey");
if(productKey) return productKey;
return win.reg.queryWow64( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
,"BackupProductKeyDefault" )
}
console.log("安装序列号" ,getProductKey() );
console.pause();
Markdown 格式