Inno Setup 判断.NET是否安装

原创 2015年11月19日 19:15:45

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;
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

使用Inno Setup 打包.NET程序,并自动安装.Net Framework

Inno Setup 是一个windows系统下的安装包制作程序。它是免费的(而且允许免费用于商业用途)。官网网站:http://www.jrsoftware.org/ 虽然说.NET 可以使用...

inno setup 安装前判断进程是否存在,以及停止相应进程

最近用inno setup想做一个exe,可是在安装之前要停止正在运行的相应进程,可是发现它自身的方法不能满足要求,终于在网上找到了相应的资料,在这里总结一下,方便以后使用。 1:如果我只是单纯的想...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

[Other] Inno Setup 使用心德-一个完整的项目 包括.NET组建捆绑 去空格等

最近安排我弄程序的打包工作,然后叫我接触Inno Setup打包软件。 说实话,第一次弄,什么都不懂,就不断Baidu,当然很多都没有,只有看文档了! 前面打包程序部分都还好,都完成了,但...

项目inno setup安装脚本,带检测.net framework

完全不懂delphi语言,只是看过这种安装脚本,搞了三天才搞好,各种测试,各种改,终于做出了一个比较完整的安装包。 要说,还是有很多改进的地方,比如没有使用procedure,inno setup可以...

一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞

对于作Java桌面应用来说,比较烦人的就是安装部署问题,客户端是否安装有jre、jre版本问题、jre去哪下载、如何用jre启动你的Java应用?不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触...

Exe4j和Inno setup实现Java桌面应用程序安装部署(二)

(3)Exe4j生成exe文件          要运行java程序jre是必不可少的,所以我们需要复制一份本地的jre到刚才生成jar的同一目录下,因为exe4j中需要指定jre的路径,这样才...

一键搞定Java桌面应用安装部署—exe4j+Inno Setup+JRE

对于作Java桌面应用来说,比较烦人的就是安装部署问题,客户端是否安装有jre、jre版本问题、jre去哪下载、如何用jre启动你的Java应 用?不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接...

Inno Setup入门(二)——修改安装过程中的图片

修改安装过程中的图片 一般编译之后,安装过程中出现在左边图片是是下图这个样子的:   其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可: [se...

互联网软件的安装包界面设计-Inno setup

“安装界面太丑了,不堪入目!”        “这界面应该属于20年代初的旧产物……”        “难看!”         每每听到设计师和产品经理这样的吐槽时,心中...

Inno Setup入门(十四)——替换安装程序和卸载程序的图标

通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。       首先生成的安装文件图标。这个比较...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)