如何确定用户的电脑运行的是 Windows 10 还是 Windows 11 for Excel 功能?

Bal*_*Tom 5 excel vba windows-11

我有一个 Excel 工作簿,可供其他几个用户使用。我发现一些功能在不同的 Windows 操作系统上的工作方式有所不同。我的工作簿需要对不同的窗口做出反应。

在过去,

b = oWsh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")"^

会告诉我版本,即“Windows 10 Enterprise”。实际上这有点奇怪,因为当我查看注册表时,它显示“Windows 10 Pro”……“Enterprise”来自哪里?

无论如何,当我在 Win 11 上运行相同的命令时,它仍然显示“Windows 10 Pro”。

如何查明别人电脑上的操作系统是 Win 10 还是 Win 11?

正如详细描述的那样。

Sam*_*Sam 3

通过使用 WMI,您可以了解很多信息。它相当神秘,用 VBA 来做也不会减少它的神秘性。

Function IsWindows11() As Boolean
    Dim WMIService As Object
    Dim OsInfo As Object
    Dim Entry As Object
    Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set OsInfo = WMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For Each Entry In OsInfo
        If InStr(Entry.Name, "Microsoft Windows 11") > 0 Then
            IsWindows11 = True
            Exit Function
        End If
    Next
    IsWindows11 = False
End Function
Run Code Online (Sandbox Code Playgroud)

如果您想了解其工作原理,请阅读 WMI。您可以使用这样的命令在 Powershell 中执行类似的操作

Get-ComputerInfo  | select OsName
Run Code Online (Sandbox Code Playgroud)

但随后你必须调用它并获取答案。