'以下为获取操作系统版本声明
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long 'Specifies the length, in bytes, of the structure.
dwMajorVersion As Long 'Major Version Number
dwMinorVersion As Long 'Minor Version Number
dwBuildNumber As Long 'Build Version Number
dwPlatformId As Long 'Operating System Running, see below
szCSDVersion As String * 128 'Windows NT: Contains a null-terminated string,
'such as "Service Pack 3", that indicates the latest
'Service Pack installed on the system.
'If no Service Pack has been installed, the string is empty.
'Windows 95: Contains a null-terminated string that provides
'arbitrary additional information about the operating system
End TypePrivate Const hNull = 0' dwPlatformId defines:
Public Enum enuOSVersion
VER_PLATFORM_WIN32s = 0 'Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS = 1 'Win32 on Windows 95 or Windows 98.
'For Windows 95, dwMinorVersion is 0.
'For Windows 98, dwMinorVersion is 1.
VER_PLATFORM_WIN32_NT = 2 'Win32 on Windows NT.
End EnumPrivate Declare Function GetVersionExA Lib "kernel32" _
(lpVersionInformation As OSVERSIONINFO) As Integer
'获取操作系统版本
Public Function GetOSVersion(Optional sInfo As String) As enuOSVersion
'=======================================
'Returns the Operating System being used
'1 = Windows 95 / Windows 98
'2 = Windows NT
'=======================================
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
With osinfo
.dwOSVersionInfoSize = 148
.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
GetOSVersion = .dwPlatformId
sInfo = "版本 " & .dwMajorVersion & "." & .dwMinorVersion & " (Build " & .dwBuildNumber & ": " & StrZToStr(.szCSDVersion) & ")"
End With
End FunctionPrivate Function StrZToStr(s As String) As String
If InStr(1, s, Chr$(0)) > 0 Then
StrZToStr = Left$(s, InStr(1, s, Chr$(0)) - 1)
Else
StrZToStr = s
End If
End Function
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long 'Specifies the length, in bytes, of the structure.
dwMajorVersion As Long 'Major Version Number
dwMinorVersion As Long 'Minor Version Number
dwBuildNumber As Long 'Build Version Number
dwPlatformId As Long 'Operating System Running, see below
szCSDVersion As String * 128 'Windows NT: Contains a null-terminated string,
'such as "Service Pack 3", that indicates the latest
'Service Pack installed on the system.
'If no Service Pack has been installed, the string is empty.
'Windows 95: Contains a null-terminated string that provides
'arbitrary additional information about the operating system
End TypePrivate Const hNull = 0' dwPlatformId defines:
Public Enum enuOSVersion
VER_PLATFORM_WIN32s = 0 'Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS = 1 'Win32 on Windows 95 or Windows 98.
'For Windows 95, dwMinorVersion is 0.
'For Windows 98, dwMinorVersion is 1.
VER_PLATFORM_WIN32_NT = 2 'Win32 on Windows NT.
End EnumPrivate Declare Function GetVersionExA Lib "kernel32" _
(lpVersionInformation As OSVERSIONINFO) As Integer
'获取操作系统版本
Public Function GetOSVersion(Optional sInfo As String) As enuOSVersion
'=======================================
'Returns the Operating System being used
'1 = Windows 95 / Windows 98
'2 = Windows NT
'=======================================
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer
With osinfo
.dwOSVersionInfoSize = 148
.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
GetOSVersion = .dwPlatformId
sInfo = "版本 " & .dwMajorVersion & "." & .dwMinorVersion & " (Build " & .dwBuildNumber & ": " & StrZToStr(.szCSDVersion) & ")"
End With
End FunctionPrivate Function StrZToStr(s As String) As String
If InStr(1, s, Chr$(0)) > 0 Then
StrZToStr = Left$(s, InStr(1, s, Chr$(0)) - 1)
Else
StrZToStr = s
End If
End Function
本人没有QQ,听说QQ现在只能通过声讯台和手机注册,因为这样Tencent可以赚到注册费,我看Tencent能狂到什么时候To:luoxiang2000
sInfo是一个字符串,是返回数据用的,里面包括版本号和操作系统描述等
恕我菜!你把写在这一行(Public Function GetOSVersion(Optional sInfo As String) As enuOSVersion),就我理解,这个sInfo应该是要传入的变量呀?也就是说,他要在你调用时由你给出呀?
Dim sRet As String,lRet As Long
lRet=GetOSVersion(sRet)
Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long
说明
判断当前运行的Windows和DOS版本
返回值
Long,低16位包含了windows版本;低字节包含了主版本号(3代表windows 3.10,4代表nt 4.0);高字节包含了两个数位的辅助版本号(10代表windows 3.10,95代表windows 95)。高16位则包含了平台信息。针对windows NT,高位设为0;针对windows for workgroups上运行的Win32s,则高位为1
注解
在win32下,最好换用GetVersionEx函数。在win32下,高字不会返回DOS版本