; 注册表读取系统版本号 RegRead, ReleaseId, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion, ReleaseId MsgBox % ReleaseId ; Chrome库的自带Edge,需要系统版本if (ReleaseId>2004)才行【22H2=2009】 ; 简单API判断 <6 Vista和XP,=10 Win10/Win11【Win8未验证】 MsgBox % "简单API判断:" (DllCall("Kernel32.dll\GetVersion", "UInt") & 0xFF) If ((DllCall("Kernel32.dll\GetVersion", "UInt") & 0xFF) < 6) { MsgBox, 16, %A_ThisFunc%, 此功能需要 Windows Vista 或更高版本! Return } ; GPT回答:Windows 11的正式版本号应该大于或等于10.0.22000。 MsgBox % A_OSVersion if (SubStr(A_OSVersion, -4)>21500) ; Win版本判断 acc实时防护ID := "4.2.4.2.4.5" ; Win11 else acc实时防护ID := "4.2.4.5.5" ; Win10 ; 函数精确判断 MsgBox % RtlGetVersion() ; MsgBox % Format("{:X}", RtlGetVersion()) RtlGetVersion() { ; 检索已安装的Windows系统的版本 ; https://github.com/jNizM/ahk_pi-hole/blob/master/src/pi-hole.ahk ; https://msdn.microsoft.com/en-us/library/mt723418(v=vs.85).aspx ; 0x0A00 - 2560 - Windows 10 / Windows 11 ; 0x0603 - 1539 - Windows 8.1 ; 0x0602 - 1538 - Windows 8 / Windows Server 2012 ; 0x0601 - 1537 - Windows 7 / Windows Server 2008 R2 ; 0x0600 - 1536 - Windows Vista / Windows Server 2008 ; 0x0502 - 1282 - Windows XP 64-Bit Edition / Windows Server 2003 / Windows Server 2003 R2 ; 0x0501 - 1281 - Windows XP ; 0x0500 - 1280 - Windows 2000 ; 0x0400 - 1024 - Windows NT 4.0 static RTL_OSV_EX, init := NumPut(VarSetCapacity(RTL_OSV_EX, A_IsUnicode ? 284 : 156, 0), RTL_OSV_EX, "uint") if (DllCall("ntdll\RtlGetVersion", "ptr", &RTL_OSV_EX) != 0) throw Exception("RtlGetVersion failed", -1) return ((NumGet(RTL_OSV_EX, 4, "uint") << 8) | NumGet(RTL_OSV_EX, 8, "uint")) }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)