Передача установленного файла (.reg) в программу (regedit) в Inno Setup завершается неудачно с сообщением «Не удается импортировать ... Ошибка открытия файла» - PullRequest
1 голос
/ 06 ноября 2019

Я хочу импортировать reg-файл после установки. Вот мой код:

procedure CurStepChanged(CurStep: TSetupStep);
Var
    ResultCode: Integer;
begin
    if CurStep = ssPostInstall then begin
        Exec('{win}\regedit.exe', '{app}\MyReg.reg', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end;
end;

Я также пробовал это:

[Run]
Filename "{win}\regedit.exe"; Parameters: "{app}\MyReg.reg";

Оба сбой с:

Невозможно импортировать MyReg.reg: Ошибка открытияфайл. Может быть ошибка диска или файловой системы.

Я попытался импортировать reg-файл вручную (cmd.exe)

C:\Windows\regedit.exe MyReg.reg

1 Ответ

2 голосов
/ 06 ноября 2019

Если вы устанавливаете на Program Files, то {app} содержит пробелы.

Вы должны всегда заключать в двойные кавычки пути, чтобы разрешить пути с пробелами.

Exec('{win}\regedit.exe', '"{app}\MyReg.reg"', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);

Аналогично:

[Run]
Filename "{win}\regedit.exe"; Parameters: """{app}\MyReg.reg""";
...