2016-11-30 12 views
1

Google Chromeバージョン54.00以降が必要なソフトウェアがあります。Chromeがインストールされていて、Inno Setupを使用している特定のバージョンであることを確認してください

私はアプリケーションのインストールスクリプトを作成して、まずChromeブラウザが使用可能かどうかを確認してから、コンピュータにインストールされていないかどうかを確認したい場合は、Chromeのバージョン54.00をサイレントインストールする必要があります(Chromeのオフラインインストールファイルはパッケージ自体で提供されている)、クロムが既にコンピュータにインストールされている場合、インストールスクリプトは、クロムのバージョンが54.00以上であるかどうかをチェックし、そうであればソフトウェアのインストールを進めます。パッケージに含まれているクロムセットアップファイルからv54.00をインストールまたはアップデートする必要があります。

このクロムインストールのチェックは、ソフトウェアのインストールプロセスの開始時に行う必要があります。

また、誰かが少し詳細な方法でオンラインで入手できるinnoについてのチュートリアルを手伝ってくれれば、私は多くの助けになります。

我々が持っている現在インストールスクリプトは以下の通りです: - あなたの質問はかなり広い

enter center code herode here 
; Script generated by the Inno Setup Script Wizard. 
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 
#define MyAppName "CLIxModules_v1.0.9" 
#define MyAppVersion "1.0.9" 
#define MyAppPublisher "Connected Learning Initiative, Tata Institute Of Social Science" 
#define MyAppURL "https://clix.tiss.edu" 
#define MyAppExeName "unplatform_win32_ssl.bat" 

[Setup] 
; NOTE: The value of AppId uniquely identifies this application. 
; Do not use the same AppId value in installers for other applications. 
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 
AppId={{2154FF98-4E99-44A6-9EE9-56886A9BA8EF} 
AppName={#MyAppName} 
AppVersion={#MyAppVersion} 
;AppVerName={#MyAppName} {#MyAppVersion} 
AppPublisher={#MyAppPublisher} 
AppPublisherURL={#MyAppURL} 
AppSupportURL={#MyAppURL} 
AppUpdatesURL={#MyAppURL} 
DefaultDirName={userdocs}\{#MyAppName} 
DisableProgramGroupPage=yes 
OutputDir=A:\CLIX\FINAL RELEASED VERSIONS\Release1811 
OutputBaseFilename=CLIxModules_v1.0.9_setup 
SetupIconFile=A:\CLIX\Packaged\CLIxModules_v1.0.9_Packaged_1711\CLIxModules_v1.0.9\Clix_Setup_Icon.ico 
Compression=lzma 
SolidCompression=yes 
PrivilegesRequired=lowest 

[Languages] 
Name: "english"; MessagesFile: "compiler:Default.isl" 

[Tasks] 
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked 

[Files] 
Source: "A:\CLIX\Packaged\CLIxModules_v1.0.9_Packaged_1711\CLIxModules_v1.0.9\unplatform_win32_ssl.bat"; DestDir: "{app}"; Flags: ignoreversion 
Source: "A:\CLIX\Packaged\CLIxModules_v1.0.9_Packaged_1711\CLIxModules_v1.0.9\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 
; NOTE: Don't use "Flags: ignoreversion" on any shared system files 

[Icons] 
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" 
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; IconFilename: {app}/clix_round_icons_core_RFY_icon.ico 

[Run] 
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: shellexec postinstall skipifsilent 
+0

OK、編集に感謝します。私の答えは助けにもかかわらず? –

+0

@martin、私はどこに私はコードを置く必要があり、私はその関数を呼び出す必要が混乱しているので、私は答えをテストできませんでした。だから私は私のスクリプトを追加することができますこれで私を助けてください。 –

+0

を設定していないので、私の答えに電話をかけた例を追加しました。 –

答えて

0

、それが指定されていない、あなたがチェックし、Chromeをインストールするインストールのどの部分で、

しかし、いくつか考えてみると、以下のコードを参照してください。

コードも答えるInno Setup - How can I tell the installation when it execute Google Chrome, it should open stackoverflow.com?からGetChromeFileName関数を使用するには、クロムをチェックし、[Run]セクションエントリとCheckパラメータを使用して、そのインストーラを実行する別のアプローチを示します。

[Files] 
Source: "ChromeStandaloneSetup64.exe"; Flags: dontcopy nocompression 

[Code] 

procedure CheckChrome; 
var 
    ChromeMS, ChromeLS: Cardinal; 
    ChromeMajorVersion, ChromeMinorVersion: Cardinal; 
    InstallChrome: Boolean; 
    ChromeFileName: string; 
    ChromeInstallerFileName: string; 
    ResultCode: Integer; 
begin 
    ChromeFileName := GetChromeFileName(''); 
    if ChromeFileName = '' then 
    begin 
    Log('Chrome not found, will install'); 
    InstallChrome := True; 
    end 
    else 
    begin 
    Log(Format('Found Chrome path %s', [ChromeFileName])); 
    if not GetVersionNumbers(ChromeFileName, ChromeMS, ChromeLS) then 
    begin 
     Log(Format('Cannot read Chrome version from %s, will install', [ChromeFileName])); 
     InstallChrome := True; 
    end 
     else 
    begin 
     ChromeMajorVersion := ChromeMS shr 16; 
     ChromeMinorVersion := ChromeMS and $FFFF; 
     Log(Format('Chrome version is %d.%d', [ChromeMajorVersion, ChromeMinorVersion])); 
     if ChromeMajorVersion < 53 then 
     begin 
     Log('Chrome is too old, will install'); 
     InstallChrome := True; 
     end 
     else 
     begin 
     Log('Chrome is up to date, will not install'); 
     InstallChrome := False; 
     end; 
    end; 
    end; 

    if InstallChrome then 
    begin 
    Log('Installing Chrome'); 
    ExtractTemporaryFile('ChromeStandaloneSetup64.exe'); 
    ChromeInstallerFileName := ExpandConstant('{tmp}\ChromeStandaloneSetup64.exe'); 
    Exec(ChromeInstallerFileName, '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); 
    { add some error checking here} 
    Log('Installed Chrome'); 
    end; 
end; 

あなたがそれを必要CheckChromeを呼び出します。例えば。 InitializeSetupまたはCurStepChanged

function InitializeSetup(): Boolean; 
begin 
    CheckChrome; 
    Result := True; 
end; 
+0

コンパイル中およびコンパイル中に未知の識別子 "GetChromeFileName"が完了していないことを示します。 –

+0

応答で説明したように、関数はリンクされた応答から得られます。 –

+0

どうすればそのエラーを取り除くことができます –

関連する問題