永发信息网

inno setup 检测.net framework版本问题

答案:2  悬赏:0  手机版
解决时间 2021-01-31 14:15
  • 提问者网友:杀手的诗
  • 2021-01-30 18:31
我想用Inno setup检测系统是否装了.net framework
我这到这样可以检测到是否安装了2.0
RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\policy\v2.0')
但是我希望检测是否安装了任意版本的.net framework,2.0,3.0,4.0,都可以,该怎么做
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-01-30 18:52
[Run]
Filename: {win}\dsoFramer2.bat; WorkingDir: {tmp}; Flags: nowait runminimized
;Filename: {app}\LiveUpdate\Temp\wic_x86_chs.exe; Parameters: /quiet; WorkingDir: {tmp}; Flags: runhidden; StatusMsg: 安装Wic
;Filename: {app}\LiveUpdate\Temp\dotNetFx40_Full_x86_x64.exe; Parameters: /quiet; WorkingDir: {tmp}; Flags: runhidden; StatusMsg: 安装.Net
;Filename: {app}\upgrade\Temp\vcredist_x86.exe; Parameters: /quiet /norestart; WorkingDir: {tmp}; StatusMsg: 安装VC++支持环境,大约需要1分钟,请稍后……
;Filename: {win}\dsoFramer2.bat; WorkingDir: {tmp}; Flags: nowait runminimized
;Filename: {tmp}\wic_x86_chs.exe; Parameters: /quiet /norestart; WorkingDir: {tmp}; Flags: runhidden; StatusMsg: 安装Wic,大约需要1分钟,请稍后……
;Filename: {tmp}\dotNetFx40_Full_x86_x64.exe; Parameters: /quiet /norestart; WorkingDir: {tmp}; Flags: runhidden; StatusMsg: 安装.NetFramework,大约需要15分钟,请稍后……
Filename: {tmp}\vcredist_x86.exe; Parameters: /quiet /norestart; WorkingDir: {tmp}; StatusMsg: 安装VC++支持环境,大约需要1分钟,请稍后……
Filename: {tmp}\hong.exe; WorkingDir: {tmp}

[Code]
function InitializeSetup: Boolean;

var Path:string ;

ResultCode: Integer;

dotNetV4RegPath:string;

dotNetV4PackFile:string;

wic:string;

begin

dotNetV4RegPath:='SOFTWARE\Microsoft\.NETFramework\policy\v4.0';

dotNetV4PackFile:='{src}\环境配置\dotNetFx40_Full_x86_x64.exe';

wic:='{src}\环境配置\wic_x86_chs.exe';

if RegKeyExists(HKLM, dotNetV4RegPath) then

begin

Result := true;

end

else

begin

Exec(ExpandConstant(wic), '/q /norestart', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

if MsgBox('正在安装备课工具必备组件.Net Framework 4.0,此过程将会持续15分钟左右,请稍后……', mbConfirmation, MB_YESNO) = idYes then

begin

Path := ExpandConstant(dotNetV4PackFile);

if(FileOrDirExists(Path)) then

begin

Exec(Path, '/q /norestart', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

end

else

begin

if MsgBox('软件安装目录中没有.Net Framework的安装程序,跳过安装.Net Framework 4.0?', mbConfirmation, MB_YESNO) = idYes then

begin

Result := true;

end

end

end

Result := true;

end;

end;
全部回答
  • 1楼网友:何以畏孤独
  • 2021-01-30 19:05
为毛我感觉你的检测 注册表 那儿的斜杠搞错了。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯