⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序如何才能识别目前的操作系统环境.txt

📁 VB技巧问答10000例 VB技巧问答10000例
💻 TXT
字号:
我 在 QA000011 “如何在VB 4.0程序中确定Win 95的语种”介 绍 过 了 区 分 Windows的 不 同 语 言 版 本 的 方 法 , 这 里 不 在 赘 述 。 下 面 , 我 们 分 16位 和 32位 两 种 情 况 介 绍 一 下 获 得 版 本 号 的 办 法 。 
    16位 程 序 通 常 是 使 用 Windows中 的 GetVersion()函 数 是 用 来 获 取 Windows及 DOS版 本 号 的 , 这 个 函 数 的 返 回 值 是 一 个 四 个 字 节 的 DWORD类 型 。 低 位 字 节 返 回 Windows主 版 本 号 。 返 回 值 的 低 位 字 的 高 位 字 节 说 明 Windows的 副 版 本 号 , 高 位 字 的 低 位 字 节 说 明 DOS的 副 版 本 号 , 高 位 字 的 高 位 字 节 说 明 DOS的 主 版 本 号 。 比 如 说 , 在 Windows 95下 调 用 这 一 函 数 返 回 0x07005F03。 高 位 字 0x0700说 明 DOS版 本 为 7.00。 低 位 字 的 低 位 字 节 0x03, 低 位 字 节 0x5F(十 进 制 95), 也 就 是 说 Windows 95的 Windows版 本 号 为 3.95(注 意 不 是 4.0)。 下 表 是 各 版 本 的 Windows 的 GetVersion()的 返 回 值 :  
                  Windows版 本 号             DOS版 本 号  
Windows 3.x       实 际 的 Windows版 本 号    实 际 的 DOS版 本 号 Windows for 
Workgroup 3.11    3.10                        实 际 的 DOS版 本 号 Windows NT(16位 
Windows,或称WOW) 3.10                        5.0  
Windows 95        3.95                        7.0 
Windows 95 OSR2   3.95                        7.1  
    GetVersion()是 标 准 的 Windows版 本 信 息 函 数 , 但 它 返 回 的 值 并 不 总 是 “ 真 实 ” 的 。 例 如 出 于 兼 容 性 的 考 虑 , Windows for Workgroup 3.11(注 意 这 和 Windows 3.11是 两 个 不 同 的 版 本 )返 回 的 版 本 号 是 3.10, 不 是 3.11。 你 可 以 使 用 GetFileVersionInfo()函 数 来 获 得 USER.EXE的 版 本 号 , 它 返 回 的 将 是 3.11。 Windows 3.2中 文 版 返 回 的 版 本 号 是 3.10, 而 不 是 3.20, 这 倒 不 是 技 术 原 因 , 而 是 因 为 Windows 3.2是 在 Windows 3.10的 基 础 上 汉 化 的 。 如 果 想 知 道 程 序 是 否 运 行 在 Windows NT环 境 下 , 16位 程 序 可 以 调 用 WinFlags()函 数 , 用 返 回 值 同 WF_WINNT相 与 , 如 果 不 为 零 说 明 运 行 在 Windows NT中 。 如 果 你 的 C++系 统 中 没 有 定 义 WF_WINNT常 数 , 可 以 加 上 下 面 这 句 : 
    #define WF_WINNT 0x4000 
    32位 程 序 仍 可 以 使 用 GetVersion()函 数 , 但 返 回 值 同 16位 不 同 。 32位 软 件 最 好 使 用 GetVersionEx()函 数 。 这 个 函 数 使 用 OSVERSIONINFO结 构 , 该 结 构 是 如 下 定 义 的 : 
    typedef struct _OSVERSIONINFO{ 
     DWORD dwOSVersionInfoSize; 
     DWORD dwMajorVersion; // 主 版 本 号 
     DWORD dwMinorVersion; // 副 版 本 号 
     DWORD dwBuildNumber; // Build号 
     DWORD dwPlatformId; 
     TCHAR szCSDVersion[ 128 ]; 
    } OSVERSIONINFO; 
    在 Windows 95上 , dwMajorVersion为 4, dwMinorVersion为 0, dwBuildNumber为 950, 也 就 是 说 Windows 95的 版 本 号 为 4.00.950。 dwPlatformId是 用 来 区 分 Windows 95、 Windows NT和 Win32s。 其 取 值 含 义 如 下 :
取 值                       含 义  
VER_PLATFORM_WIN32s        Win32s on Windows 3.1 
VER_PLATFORM_WIN32_WINDOWS Win32 on Windows 95 
VER_PLATFORM_WIN32_NT      Win32 on Windows NT 
    
    若 想 区 别 Windows 95与 Windows 95 OSR2, 要 看 dwBuildNumber, 如 果 dwBuildNumber的 低 位 字 大 于 1080, 则 系 统 为 Windows 95 OSR2或 更 高 版 本 。 在 Win32中 不 再 支 持 WinFlags()函 数 。 
    尽 管 GetVersionEx()函 数 和 GetVersion ()函 数 是 Windows提 供 的 标 准 的 版 本 函 数 , 但 在 实 际 编 程 使 用 GetFileVersionInfo()函 数 有 时 更 方 便 。 
<END>
     
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -