Создайте файл Bat после завершения установки при установке inno - PullRequest
0 голосов
/ 07 декабря 2018

Работает хорошо!Проблема в том, что при создании летучей мыши она не создает путь, по которому она была создана.

Это мой текущий код:

[Code]
function CreateBatch(): boolean;
var
  fileName : string;
  lines : TArrayOfString;
begin
  Result := true;
  fileName := ExpandConstant('{pf}\{#MyAppName}\batch.bat');
  SetArrayLength(lines, 2);
  lines[0] := '{pf}\{#MyAppName}\soft21\launcher.exe" -g "{pf}\{#MyAppName}\soft\code\Turbo.rpx';
  lines[2] := 'exit';
  Result := SaveStringsToFile(filename,lines,true);
  exit;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if  CurStep=ssPostInstall then
    begin
         CreateBatch();
    end

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

Это должно выглядеть так, например:

"C: \ Program Files \ soft21 \ launcher.exe" -g "C: \ Program Files \ soft12 \ code \ Turbo.rpx "

1 Ответ

0 голосов
/ 07 декабря 2018

Вы должны ExpandConstant значение для lines[0].

Помните о правильных цитатах.

Если вы не хотите добавлять свою партию при каждой установке приложения, не используйте true для SaveStringsToFile.

[Code]
function CreateBatch(): boolean;
var
  fileName : string;
  lines : TArrayOfString;
begin
    //test for directory
    if not DirExists(ExpandConstant('{userdesktop}\{#MyAppName}')) then begin
        CreateDir(ExpandConstant('{userdesktop}\{#MyAppName}'));
    end;
    //test for dir end
  fileName := ExpandConstant('{userdesktop}\{#MyAppName}\batch.bat');
  SetArrayLength(lines, 2);
  lines[0] := ExpandConstant('"{pf}\{#MyAppName}\soft21\launcher.exe" -g "{pf}\{#MyAppName}\soft\code\Turbo.rpx"');
  lines[1] := 'exit';
  Result := SaveStringsToFile(filename,lines,true);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if  CurStep=ssPostInstall then
    begin
         CreateBatch();
    end
end;
...