gpt4 book ai didi

windows - 我可以从 VB6 确定我是否在 Win7 操作系统上吗?

转载 作者:可可西里 更新时间:2023-11-01 14:38:57 26 4
gpt4 key购买 nike

我有一个用 VB6 编写的旧程序需要在 3 个不同的平台上运行,包括我运行 Win7 的笔记本电脑。我用谷歌搜索了如何从 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 Case osinfo.dwMajorVersion
Case 7
sOS = "?" 'Win7?
Case 6
sOS = "Vista"
Case 5
sOS = "XP"
Case 4
sOS = "Win2000"
End Select

MsgBox (sOS)
return sOS

End Function

当我从我的 WIN7 笔记本电脑上运行它时,osinfo.dwMajorVersion = 5,这表明它在 XP 机器上。

这里发生了什么?用这个方法可以判断自己是不是运行的是Win7吗?获取所需信息的最佳方式是什么?

最佳答案

Windows 7 实际上是版本 6.1,而不是版本 7。您检查的号码有误。否则,我不太确定为什么您显示的代码不起作用。至少有一个问题是 VB 6 中没有 return 关键字。GetOS 函数的最后一行应该是 GetOS = sOS,而不是.一旦我解决了这些问题,它对我来说也能正常工作。

我有a full working solution available here .它可以快速准确地检测所有已知版本的 Windows。我已经在至少 5 个不同版本的 Windows 上亲自对此进行了测试,没有出现任何问题。您所要做的就是将代码复制并粘贴到您的项目中,它就可以正常工作。

以下是它在我的 Windows 7 笔记本电脑上正常工作的证据:

我真的不确定为什么每个人都如此努力地提出替代的、部分可行的解决方案。此款产品保证有效,否则退款。如果它对您不起作用,请确保您"Windows XP Mode" 下运行该应用程序或其他一些虚拟机。

关于windows - 我可以从 VB6 确定我是否在 Win7 操作系统上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com