Inno Setup 判断.NET是否安装

Inno Setup 判断.NET是否安装,如未安装则提示下载安装,且不继续执行安装步骤:

[Code]
function IsDotNetDetected(version: string; service: cardinal): boolean;
// Indicates whether the specified version and service pack of the .NET Framework is installed.
//
// version -- Specify one of these strings for the required .NET Framework version:
//    'v1.1.4322'     .NET Framework 1.1
//    'v2.0.50727'    .NET Framework 2.0
//    'v3.0'          .NET Framework 3.0
//    'v3.5'          .NET Framework 3.5
//    'v4\Client'     .NET Framework 4.0 Client Profile
//    'v4\Full'       .NET Framework 4.0 Full Installation
//
// service -- Specify any non-negative integer for the required service pack level:
//    0               No service packs required
//    1, 2, etc.      Service pack 1, 2, etc. required
var
    key: string;
    install, serviceCount: cardinal;
    success: boolean;
begin
    key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
    // .NET 3.0 uses value InstallSuccess in subkey Setup
    if Pos('v3.0', version) = 1 then begin
        success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
    end else begin
        success := RegQueryDWordValue(HKLM, key, 'Install', install);
    end;

    // .NET 4.0 uses value Servicing instead of SP
    if Pos('v4', version) = 1 then begin
        success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
    end else begin
        success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
    end;
    result := success and (install = 1) and (serviceCount >= service);
end;

function InitializeSetup(): Boolean;
var ErrorCode: Integer;
begin
    if not IsDotNetDetected('v4\Client', 0) then begin
        MsgBox('xxxTMS云平台需要安装微软Microsoft.NET Framework'#13#13
            '请点击确定,然后在打开的网页中下载并安装.NET Framework,'#13
            '在安装完成后再双击本安装文件继续安装xxxTMS云平台客户端。', mbInformation, MB_OK);
        //Path := ExpandConstant('{pf}\Internet Explorer\iexplore.exe'); 
        //Exec(Path, 'http://rj.baidu.com/soft/detail/15910.html?ald', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode); 
        ShellExec('open', 'http://rj.baidu.com/soft/detail/15910.html?ald', '', '', SW_SHOW, ewNoWait, ErrorCode)
        result := false;
    end else begin
        result := true;
        MsgBox('您已经安装了' ,mbInformation, MB_OK);
    end;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值