如何在VB中用API函数查询windows版本号?

如何在VB中用API函数查询windows版本号?麻烦说的详细点!谢谢!
2024-12-18 04:53:22
推荐回答(2个)
回答1:

GetVersionEx API~

GetVersionEx(
var lpVersionInformation: TOSVersionInfo //结构体
): BOOL;

//结构 TOSVersionInfo 是 _OSVERSIONINFOA 的别名
_OSVERSIONINFOA = record
dwOSVersionInfoSize: DWORD; {结构大小}
dwMajorVersion: DWORD; {主版本号}
dwMinorVersion: DWORD; {次版本号}
dwBuildNumber: DWORD; {建立编号}
dwPlatformId: DWORD; {作业平台}
szCSDVersion: array[0..127] of AnsiChar; {其他说明信息}

版本号的话只要拿到主版本号和次版本号就可以了,WinNT版本号是4.0/4.1、Win2000是5.0、xp是5.1、Vista是6.0

至于具体的调用方式……VB的API调用不是一点半点的麻烦~相信你也知道。

用到的结构体和函数声明用VB6安装目录下的API浏览器都可以直接找到,如果你需要代码,请补充问题~

===================

我还是补充个声明吧

Type OsVersionInfo
dwVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatform As Long
szCSDVersion As String * 128
End Type

Private Declare Function GetVersionEx& Lib "kernel32" Alias "GetVersionExA" (lpStruct As OsVersionInfo)

然后调用

Sub GetOSVersion32()
OsVers.dwVersionInfoSize = 148&
tmplng = GetVersionEx(OsVers)
End Sub

大部分计算机上sizeof(Long)=4,所以VersionInfo结构的Size是128+5*4=148bytes。

就这样吧。代码我没测试过,手头没有VB环境……

回答2:

API本身很复杂,3级的人多少应该懂得给点悬赏分了
给你个提示,你自己去网上查找cbm666他的一些代码里可能有你想要的答案