Winver:修订间差异

跳转到导航 跳转到搜索
添加1,144字节 、​ 2026 年 1 月 28 日 (星期三)
无编辑摘要
→‎注
无编辑摘要
 
第 8 行: 第 8 行:
<code>winver</code> 是 Windows 版本(Windows Version)的缩写,是大多数 [[Microsoft Windows]] 版本中包含的实用程序,用于获取有关操作系统版本的信息。根据 Windows 版本的不同,此工具在基于 DOS 的 Windows 和 Windows NT 上的文件版本信息中也分别称为 Windows 版本实用程序(Windows-version utility)或版本报告小程序(Version Reporter Applet)。
<code>winver</code> 是 Windows 版本(Windows Version)的缩写,是大多数 [[Microsoft Windows]] 版本中包含的实用程序,用于获取有关操作系统版本的信息。根据 Windows 版本的不同,此工具在基于 DOS 的 Windows 和 Windows NT 上的文件版本信息中也分别称为 Windows 版本实用程序(Windows-version utility)或版本报告小程序(Version Reporter Applet)。


== 历史 ==
它最初是在 [[Windows 3.0]] 中引入的,在那里它被实现为一个简单的消息框,其中包含 Windows 徽标、主要和次要版本号、版权声明以及有关当前活动操作模式的信息。此工具还包括一个自定义的 [[MS-DOS]] 可执行存根,用于将版本信息打印到屏幕上。在整个经典的 Windows 系列中,它几乎没有变化,[[Windows 3.1]] 只更改了徽标,而 [[Windows 95]] 将版本信息简化到操作系统名称。
它最初是在 [[Windows 3.0]] 中引入的,在那里它被实现为一个简单的消息框,其中包含 Windows 徽标、主要和次要版本号、版权声明以及有关当前活动操作模式的信息。此工具还包括一个自定义的 [[MS-DOS]] 可执行存根,用于将版本信息打印到屏幕上。在整个经典的 Windows 系列中,它几乎没有变化,[[Windows 3.1]] 只更改了徽标,而 [[Windows 95]] 将版本信息简化到操作系统名称。


在基于 NT 的 Windows 版本上,此实用程序自 [[Windows NT 3.1]] 以来一直包含在内,在 Windows NT 3.1 中,它的实现方式类似于其 16 位对应物,作为包括 Windows 徽标、版本和内部版本号以及版权声明的简单框。但是,从 [[Windows NT 3.5]] 开始,它仅调用 <code>[https://learn.microsoft.com/zh-cn/windows/win32/api/shellapi/nf-shellapi-shellaboutw ShellAbout]</code> API 函数来显示一个标准的关于框,除了版本和版权声明外,它还包含有关计算机和注册所有者的信息。随着在 [[Windows 2000]] 开发过程中引入了[[时间炸弹]],winver 更新为查询有关时间炸弹的信息,如果存在,则将其显示在“关于”框中。
在基于 NT 的 Windows 版本中,该工具自 [[Windows NT 3.1]] 起便被纳入系统,其实现方式与16位版本类似——仅以一个简易窗口呈现,显示 Windows 徽标、版本号、构建号及版权声明。然而从 [[Windows NT 3.5]] 开始,该工具仅显示外壳关于框,除版本号和版权声明外,还包含计算机信息、注册所有者及可用内存容量等内容。


== 实现 ==
=== Windows NT 3.5 及更高版本 ===
在不包含独立 <code>winver.exe</code> 可执行文件的 Windows 版本(如 Windows Server Core 或 [[Windows 预安装环境]])上,可以使用 <code>rundll32 shell32,ShellAbout</code> 命令调用此对话框。但是,当以这种方式调用时,对话框将不包含时间炸弹信息,原因在于此功能是小程序独有的。以这种方式调用时,对话框标题将显示乱码,这是因为 <code>rundll32</code> 预期的参数与函数的实际签名之间存在差异。{{efn|<code>rundll32</code> 期望被调用函数具有 {{code|void CALLBACK EntryPoint (HWND hWnd, HINSTANCE hInst, LPSTR lpszCmdLine, int nCmdShow)|c}} 的签名。标题栏中的乱码应用程序名称(<code>MZ</code> 或 mojibake,具体取决于使用的是 API 的 -A 还是 -W 变体)是 <code>ShellAbout</code> 尝试将 <code>shell32.dll</code> 的可执行标头分析为零终止字符串字符串的结果。这是由第二个参数不匹配引起的,其中 <code>ShellAbout</code> 需要指向字符串的指针,而 <code>rundll32</code> 提供 DLL 的 <code>HINSTANCE</code>,在 Win32 中是指向内存中加载模块的指针。}}
在不包含独立 <code>winver.exe</code> 可执行文件的 Windows 版本(如 Windows Server Core 或 [[Windows 预安装环境]])上,可以使用 <code>rundll32 shell32,ShellAbout</code> 命令调用此对话框。但是,当以这种方式调用时,对话框将不包含时间炸弹信息,原因在于此功能是小程序独有的。以这种方式调用时,对话框标题将显示乱码,这是因为 <code>rundll32</code> 预期的参数与函数的实际签名之间存在差异。{{efn|<code>rundll32</code> 期望被调用函数具有 {{code|void CALLBACK EntryPoint (HWND hWnd, HINSTANCE hInst, LPSTR lpszCmdLine, int nCmdShow)|c}} 的签名。标题栏中的乱码应用程序名称(<code>MZ</code> 或 mojibake,具体取决于使用的是 API 的 -A 还是 -W 变体)是 <code>ShellAbout</code> 尝试将 <code>shell32.dll</code> 的可执行标头分析为零终止字符串字符串的结果。这是由第二个参数不匹配引起的,其中 <code>ShellAbout</code> 需要指向字符串的指针,而 <code>rundll32</code> 提供 DLL 的 <code>HINSTANCE</code>,在 Win32 中是指向内存中加载模块的指针。}}
=== Windows 2000 ===
在开发Windows 2000期间引入[[时间炸弹]]机制后,<code>winver</code>被更新为可查询定时炸弹相关信息,若存在该机制,则会在关于框中显示其状态。
=== Windows 8 ===
为防止进一步泄露并追踪泄露版本的安装情况,该小程序还添加了红色文字提示,说明未经授权用户使用该版本可能导致法律责任,并可能引发刑事诉讼等不可预见的后果。在 Windows 8.1 开发阶段,这些提示信息仍以临时形式存在,但后来被移除,自 Windows 指纹识别服务重新构建后便再未出现。
=== Windows 10 和 11 ===
自 [[Windows 10]] 起,该小程序收到了渐进式的更新,通过引入注册表键来定义当前版本,这些版本会显示在“Version”标签之后。2020 年,为了区分开发版和与发布相关的 Windows 版本,引入了一个新的“Dev”版本,该版本随后暂时消失,并自 [[Windows 11]] [[Dilithium]] 版本起重新出现,在 [[Windows 11 Build 28000.1.br_release.251103-1709|build 28000]] 之前一直沿用该版本。


== 图库 ==
== 图库 ==
第 21 行: 第 33 行:
Winver-wfw3.11.png|[[Windows for Workgroups 3.11]]
Winver-wfw3.11.png|[[Windows for Workgroups 3.11]]
Winver-wfw3.11-fromDOSprompt.png|[[Windows for Workgroups 3.11]] (from DOS)
Winver-wfw3.11-fromDOSprompt.png|[[Windows for Workgroups 3.11]] (from DOS)
Winver-win95.png|[[Windows 95]]  
Winver-win95.png|[[Windows 95]]
Windows-98-4.10.1998-About.png|[[Windows 98]]
Windows-ME-4.90.3000-About.png|[[Windows Me]]
</gallery>
</gallery>


第 33 行: 第 47 行:
WindowsVista-RTM-About.png|[[Windows Vista]]
WindowsVista-RTM-About.png|[[Windows Vista]]
Windows7-RTM-About.png|[[Windows 7]]
Windows7-RTM-About.png|[[Windows 7]]
8014-About.png|[[Windows 8 Build 8014.0.fbl_grfx_dev1.110525-1700|Windows 8 Build 8014]]
8014-About.png|[[Windows 8 Build 8014.0.fbl_grfx_dev1.110525-1700|Windows 8 Build 8014]],并警告未经授权的使用
Windows8-RTM-About.png|Windows 8
Windows81-RTM-About.png|[[Windows 8.1]]
Windows10-10.0.10240-Winver.png|[[Windows 10]]
Windows11-10.0.22000.194-Winver.png|[[Windows 11]]
</gallery>
</gallery>


13,750

个编辑

导航菜单