use*_*602 3 windows inno-setup
我们使用"GetWindowsVersionEx"函数来提取Windows中的构建版本值.它在所有操作系统中都运行良好,但在最近发布的Windows 2012-R2中,它输出错误.实际构建版本为6.3,但仅显示为6.2.所以,当我做了一些研究时,我找到了以下链接来解决问题.但是,我不明白如何在inno设置代码中实现这一点.
帮助赞赏.
链接:http: //msdn.microsoft.com/en-us/library/windows/desktop/dn302074%28v=vs.85%29.aspx
[Setup]
AppName=My Program
AppVersion=1.5
DisableProgramGroupPage=yes
DefaultGroupName=My Program
OutputDir=c:\output
DefaultDirName={sd}\MYPROG
UninstallDisplayIcon={app}\MyProg.exe
[code]
var
Version: TWindowsVersion;
function InitializeSetup(): Boolean;
begin
GetWindowsVersionEx(Version);
SuppressibleMsgBox('Major='+ IntToStr(Version.Major)+ ' Minor='+IntToStr(Version.Minor),mbCriticalError, MB_OK, MB_OK);
end;
Run Code Online (Sandbox Code Playgroud)
这是在Windows 8.1和Server 2012-R2中设计的.它将返回应用程序说它通过应用程序清单支持的最新版本的Windows.
Inno安装版本5.5.3及更低版本仅标记为与Windows 8兼容.截至Inno Setup 5.5.4,它已更新为支持Windows 8.1:
将Windows 8.1"兼容性"部分添加到Inno Setup使用的各种清单资源中.这使得对操作系统版本的任何检查都可以获得实际版本号(6.3),而不是获得与Windows 8(6.2)中相同的版本号.
tl; dr:升级到Inno Setup的最新版本.
| 归档时间: |
|
| 查看次数: |
1234 次 |
| 最近记录: |