答えを探すのに時間を費やしましたが、まだこれを理解することはできません。
このコマンドを実行してサイレント インストールできる MSI ファイルがあります。
msiexec.exe /i theapp.msi /q INSTALLDIR=C:\myapp CLIENTDATA=34542@localhost.com
Inno を使用して、次のことを試みましたが、MSI がサイレント モードでインストールされません。私が受け取ったのは、このウィンドウが自動的にポップアップするため、コマンドを msiexec プロセスに渡す際に問題があることは明らかです。
#define MyAppName "fooApp"
#define MyAppVersion "1.0"
#define MyAppPublisher "fooUser"
#define MyAppURL "http://foo.com"
#define MyAppExeName "MyProg.exe"
[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={{E633BAE8-81C7-4190-9964-D86287FAA8F4}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
CreateAppDir=no
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
ShowTasksTreeLines=True
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "D:\theapp.msi"; DestDir: " {tmp}";
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Run]
Filename: "msiexec.exe"; Parameters: "/i /q CLIENTDATA=34542@localhost.com {tmp}\theapp.msi"""; Flags: runascurrentuser shellexec
[Run] セクションの下で、この行を使用すると、MSI が対話モードで正しく起動されます。このモードでは、ユーザーがパラメーターを手動で入力する必要がありますが、これは m に実行してほしくありません。
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\theapp.msi"""
別の投稿で、誰かがこの関数の使用について言及しているのを見ましたが、実際の使用方法に関するサンプル コードは見つかりませんでした。
function ParamStr(Index: Integer):
ここで方向性をありがとう。