Winver:修订间差异
跳转到导航
跳转到搜索
小
文本替换 - 替换“定时炸弹”为“时间炸弹”
正义羊-JRJSheep(讨论 | 贡献) 无编辑摘要 |
正义羊-JRJSheep(讨论 | 贡献) 小 (文本替换 - 替换“定时炸弹”为“时间炸弹”) |
||
| 第 10 行: | 第 10 行: | ||
它最初是在 [[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]] 开发过程中引入了[[ | 在基于 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 更新为查询有关时间炸弹的信息,如果存在,则将其显示在“关于”框中。 | ||
在不包含独立 <code>winver.exe</code> 可执行文件的 Windows 版本(如 Windows Server Core 或 [[Windows 预安装环境]])上,可以使用 <code>rundll32 shell32,ShellAbout</code> | 在不包含独立 <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 中是指向内存中加载模块的指针。}} | ||
== 图库 == | == 图库 == | ||