国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
InnoSetup中自動(dòng)下載.net framework 組件并安裝
  1. 自動(dòng)下載.net framework 組件并安裝 
           可通過(guò) “isxdl.dll” 擴(kuò)展實(shí)現(xiàn),動(dòng)態(tài)從網(wǎng)絡(luò)上添加一個(gè)待下載的文件,并在下載完之后自動(dòng)運(yùn)行.見如下示例.
  2. [Code]var     dotNetDownloadNeeded: boolean;    dotNetLocalPath:string;  procedure isxdl_AddFile(URL, Filename: PAnsiChar);external 'isxdl_AddFile@files:isxdl.dll stdcall';function isxdl_DownloadFiles(hWnd: Integer): Integer;external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';function isxdl_SetOption(Option, Value: PAnsiChar): Integer;external 'isxdl_SetOption@files:isxdl.dll stdcall';//檢測(cè)是否存在特定版本的.net frameworkfunction 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//    'v4.5'          .NET Framework 4.5//// 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. requiredvar    key: string;    install, release, serviceCount: cardinal;    check45, success: boolean;begin    // .NET 4.5 installs as update to .NET 4.0 Full    if version = 'v4.5' then begin        version := 'v4\Full';        check45 := true;    end else        check45 := false;    // installation key group for all .NET versions    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/4.5 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;    // .NET 4.5 uses additional value Release    if check45 then begin        success := success and RegQueryDWordValue(HKLM, key, 'Release', release);        success := success and (release >= 378389);    end;    result := success and (install = 1) and (serviceCount >= service);end;//準(zhǔn)備安裝.net framework需要的條件(本地還是聯(lián)網(wǎng))function PreInstallDotNet(dotNetName:string;dotNetDownloadUrl:string):boolean;begin    if (not IsAdminLoggedOn()) then begin      MsgBox('您電腦安裝 Microsoft .NET Framework 需要管理員權(quán)限', mbInformation, MB_OK);      Result := false;    end else begin        dotNetLocalPath := ExpandConstant('{src}') + '\'+dotNetName;        if not FileExists(dotNetLocalPath)  then begin            dotNetLocalPath := ExpandConstant('{tmp}') + '\'+dotNetName;             if not FileExists(dotNetLocalPath)  then begin                isxdl_AddFile(dotNetDownloadUrl, dotNetLocalPath);                dotNetDownloadNeeded := true;            end;        end;                SetIniString('install', 'dotnetRedist', dotNetLocalPath, ExpandConstant('{tmp}\dep.ini'));    end;    end;//執(zhí)行安裝.net frameworkfunction DoInstallDotNet():boolean;var  hWnd: Integer;  ResultCode: Integer;begin    result := true;    hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));    // don’t try to init isxdl if it’s not needed because it will error on < ie 3    if dotNetDownloadNeeded then begin      isxdl_SetOption('label', '正在下載 Microsoft .NET Framework');      isxdl_SetOption('des-c-r-i-p-tion', '您還未安裝Microsoft .NET Framework. 請(qǐng)您耐心等待幾分鐘,下載完成后會(huì)安裝到您的的計(jì)算機(jī)中。');      if isxdl_DownloadFiles(hWnd) = 0 then result := false;    end;        if result = true  then begin      if Exec(ExpandConstant(dotNetLocalPath), '/qb', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then begin         // handle success if necessary; ResultCode contains the exit code         if not (ResultCode = 0) then begin           result := false;         end;      end else begin         // handle failure if necessary; ResultCode contains the error code         result := false;      end;    end;    end;//檢測(cè)是否安裝了等于大于指定版本的.net frameworkfunction IsIncludeFramework(version: string): boolean;var    isInclued:boolean;     begin            //最高版本的    if IsDotNetDetected('v4.5',0) then begin        isInclued := true;             end else if version = 'v4.5' then begin        PreInstallDotNet('dotNetFx45_Full_setup.exe','http://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe');    end else if IsDotNetDetected('v4\Full',0) then begin        isInclued := true;    end else if version = 'v4\Full' then begin        PreInstallDotNet('dotNetFx40_Full_x86_x64.exe','http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe');    end else if IsDotNetDetected('v4\Client',0) then begin        isInclued := true;         end else if version = 'v4\Client' then begin         PreInstallDotNet('dotNetFx40_Client_x86_x64.exe','http://download.microsoft.com/download/5/6/2/562A10F9-C9F4-4313-A044-9C94E0A8FAC8/dotNetFx40_Client_x86_x64.exe');    end else if IsDotNetDetected('v3.5',0) then begin        isInclued := true;         end else if Pos('v3.5',version) = 1 then begin         PreInstallDotNet('dotNetFx35setup.exe','http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe');    end else if IsDotNetDetected('v3.0',0) then begin        isInclued := true;         end else if Pos('v3.0',version) = 1 then begin         PreInstallDotNet('dotNetFx35setup.exe','http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe');    end else if IsDotNetDetected('v2.0.50727',0) then begin        isInclued := true;         end else if Pos('v2',version) = 1 then begin        PreInstallDotNet('dotnetfx.exe','http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe');    end else if IsDotNetDetected('v1.1.4322',0) then begin        isInclued:= true;    end else if Pos('v1',version)=1 then begin        PreInstallDotNet('dotNetFx35setup.exe','http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe');    end;        result := isInclued;end;//點(diǎn)擊下一步function NextButtonClick(CurPage: Integer): Boolean;var   dotNetVersion:String;begin    Result := true;  if (CurPage = wpReady) then begin     dotNetVersion := 'v4\Full';       if not IsIncludeFramework(dotNetVersion) then begin      if not DoInstallDotNet() then begin         MsgBox('當(dāng)前操作需要安裝.NET Framework ' + dotNetVersion + '或以上版本。'#13#13          '在嘗試自動(dòng)安裝期間,似乎出現(xiàn)一些小問(wèn)題(或用戶取消了安裝),'#13          '請(qǐng)重試嘗試安裝。', mbInformation, MB_OK);        result:= false;      end;    end;  end;   end;

     關(guān)于通用
          可以將以上兩個(gè)小功能點(diǎn)分別保存為獨(dú)立的innosetup 腳本文件(“.iss”),然后在主安裝包腳本中引入這兩個(gè)文件.如下所示.

  3. #include "dotnetSetup.iss"#include "updateuninstallIco.iss"
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
安裝程序自動(dòng)檢測(cè)安裝.Net Framework運(yùn)行環(huán)境(使用InnoSetup) - 疾...
Setup Factory 7.0 打包.netframework 2.0
求net framework 3.5離線安裝
VS_MSChart控件的安裝及應(yīng)用
Delphi 中if else 的用法
Microsoft .NET Framework 3.5 sp1離線安裝
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服