如何用vb6获取操作系统的版本号(需要补充)

一如既往哈 2010-04-08 11:11:41
下面有一段网友给的获取操作系统的版本(区别windows系统版本):

Public 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

Public Function GetVersion() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer

osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)

With osinfo
Select Case .dwPlatformId
Case 1
Select Case .dwMinorVersion
Case 0
GetVersion = "Windows 95"
Case 10
GetVersion = "Windows 98"
Case 90
GetVersion = "Windows Mellinnium"
End Select
Case 2
Select Case .dwMajorVersion
Case 3
GetVersion = "Windows NT 3.51"
Case 4
GetVersion = "Windows NT 4.0"
Case 5
If .dwMinorVersion = 0 Then
GetVersion = "Windows 2000"
Else
GetVersion = "Windows XP"
End If
End Select
Case Else
GetVersion = "Failed"
End Select
End With
End Function




该代码有点缺陷:就是不能区别win2003、vista和win7

有哪位大侠有上述系统,帮俺给补充完整了,谢谢。。。。。。。
...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一如既往哈 2010-04-24
  • 打赏
  • 举报
回复
谢谢楼上的
就是just4 2010-04-23
  • 打赏
  • 举报
回复
最重要不就一句了,retvalue = GetVersionExA(osinfo)

这个与GetVersionExA()函数有关了,查ms的帮助

反正ver命令就可以查版本了,找下对应api了

[code=BatchFile]ver | find "5.0" >nul && (echo win2000)
ver | find "5.1" >nul && (echo winxp)
ver | find "5.2" >nul && (echo win2003)
ver | find "6.0" >nul && (echo vista)
ver | find "6.1" >nul && (echo win7)[/code]
一如既往哈 2010-04-21
  • 打赏
  • 举报
回复
自己顶

6,185

社区成员

发帖
与我相关
我的任务
社区描述
windows网络管理与配置
社区管理员
  • 网络管理与配置社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧