这个问题,如何从VB 6应用程序中确定Windows版本, Cody Gray提供了一个非常有用的答案,它使用GetVersionEx和Select Case语句将Windows版本作为用户友好字符串返回.
但是,给出的代码是有限的,因为所有返回值都是硬编码的,这意味着它不是未来的证据,并且每次新版本的Windows出来时都需要重写,例如Windows 8.
除了使用GetVersionEx和Select Case语句之外,还有其他选项可以检索用户友好的操作系统名称,这也是相对未来的证据吗?
我希望我的VB 6应用程序能够检测并显示正在运行的Windows版本.
我从另一个Stack Overflow问题尝试了这个代码,但它对我不起作用.它在旧版Windows(如Windows XP和Vista)上显示正确的版本号,但无法检测Windows 10.出于某种原因,它表示Windows 10是Windows 8.
我认为Windows 10将有一个主要版本的"10"和一个次要版本的"0",这个Windows版本号图表证实它确实如此.那么,为什么GetVersionEx
函数永远不会实际返回10.0版本?
如何准确区分Windows 8,Windows 8.1和Windows 10?
我有一个用VB6编写的旧程序,需要在3个不同的平台上运行,包括运行Win7的笔记本电脑.我用Google搜索了如何从VB6确定操作系统,并找到了一些我稍微修改过的代码如下:
Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer
Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Const VER_PLATFORM_WIN32s = 0
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT As Long = 2
Private Function GetOS() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
Dim sOS as String
osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
Select …
Run Code Online (Sandbox Code Playgroud)