在 Inno Setup 中记录 TWindowsVersion
Logging TWindowsVersion in Inno Setup
之前我使用的是:
{ Check Windows Version }
WindowsVersion := GetWindowsVersion;
Log(Format('Windows Version: %x', [WindowsVersion]));
现在我正在使用:
{ Check Windows Version }
GetWindowsVersionEx(WinVer);
WinVerPacked := PackVersionComponents(WinVer.Major, WinVer.Minor, WinVer.Build, 0);
其中 WinVer
的类型为 TWindowsVersion
。我们现在如何处理 Log
条目?
如果 Inno Setup 已经记录了它,为什么要记录它?
2020-11-17 16:26:59.234 Windows version: 10.0.19041 (NT platform: Yes)
无论如何,没有什么能阻止您继续使用 GetWindowsVersion
进行日志记录,即使您现在使用 GetWindowsVersionEx
进行版本检查。
PackVersionComponents
return值其实和GetWindowsVersion
差不多,所以可以直接登录:
Log(Format('Windows Version: %x', [WinVerPacked]));
它只会在输出中有更多的零:
2020-11-17 16:26:59.337 Windows Version: A00004A610000
尽管它与您之前的 GetWindowsVersion
记录一样对用户不友好:
2020-11-17 16:26:59.337 Windows Version: A004A61
确实是使用TWindowsVersion
个组件更方便用户。
Log(Format('Windows Version: %d.%d.%d', [WinVer.Major, WinVer.Minor, WinVer.Build]));
这将使您获得 Inno Setup 在其 header 中记录的内容:
2020-11-17 16:26:59.337 Windows Version: 10.0.19041
不过,如果您记录 TWindowsVersion
return 由 GetWindowsVersionEx
编辑的内容,您可以通过记录 GetWindowsVersionString
的输出让您的生活更轻松:
Log(Format('Windows Version: %s', [GetWindowsVersionString]));
这几乎是一样的:
2020-11-17 16:26:59.337 Windows Version: 10.00.19041
之前我使用的是:
{ Check Windows Version }
WindowsVersion := GetWindowsVersion;
Log(Format('Windows Version: %x', [WindowsVersion]));
现在我正在使用:
{ Check Windows Version }
GetWindowsVersionEx(WinVer);
WinVerPacked := PackVersionComponents(WinVer.Major, WinVer.Minor, WinVer.Build, 0);
其中 WinVer
的类型为 TWindowsVersion
。我们现在如何处理 Log
条目?
如果 Inno Setup 已经记录了它,为什么要记录它?
2020-11-17 16:26:59.234 Windows version: 10.0.19041 (NT platform: Yes)
无论如何,没有什么能阻止您继续使用
GetWindowsVersion
进行日志记录,即使您现在使用GetWindowsVersionEx
进行版本检查。PackVersionComponents
return值其实和GetWindowsVersion
差不多,所以可以直接登录:Log(Format('Windows Version: %x', [WinVerPacked]));
它只会在输出中有更多的零:
2020-11-17 16:26:59.337 Windows Version: A00004A610000
尽管它与您之前的
GetWindowsVersion
记录一样对用户不友好:2020-11-17 16:26:59.337 Windows Version: A004A61
确实是使用
TWindowsVersion
个组件更方便用户。Log(Format('Windows Version: %d.%d.%d', [WinVer.Major, WinVer.Minor, WinVer.Build]));
这将使您获得 Inno Setup 在其 header 中记录的内容:
2020-11-17 16:26:59.337 Windows Version: 10.0.19041
不过,如果您记录
TWindowsVersion
return 由GetWindowsVersionEx
编辑的内容,您可以通过记录GetWindowsVersionString
的输出让您的生活更轻松:Log(Format('Windows Version: %s', [GetWindowsVersionString]));
这几乎是一样的:
2020-11-17 16:26:59.337 Windows Version: 10.00.19041