1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Иконки не для исполняемого файла

Тема в разделе "Inno Setup", создана пользователем zapsip, 18 янв 2019.

  1. Пользователь

    Регистрация:
    25 дек 2016
    Сообщения:
    149
    Симпатии:
    25
    Здравствуйте всем !
    Как в скрипте создать дополнительные иконки на рабочий стол для определённых файлов, установленных в процессе установки ))) и находящихся в папке или в недрах папки установленной программы (игры) , но отличных от файла запуска игры ?

    Бывает такое, что создатели игры делают сразу несколько исполняемых файлов : лаунчер, старт, ран, сетап для настроек графики, звука и т д

    А бывает, что репакер хочет облегчить жизнь игрока, cоздавая файлы .cmd .bat , например, для мультиплеера и одиночной игры; для разных озвучек; и т д.
     
    Последнее редактирование: 19 янв 2019
  2. Старожил

    Регистрация:
    31 мар 2015
    Сообщения:
    332
    Симпатии:
    171
    Пол:
    Мужской
    Код (Inno):
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      case CurStep of
      ssPostInstall: begin
      CreateShellLink(ExpandConstant('{commondesktop}\Запустить что-нибудь.lnk'), '', ExpandConstant('{app}\файл запуска'), '', '', ExpandConstant('{app}\файл иконки'), 0, 0);
    end;
    end;
    end;
     
    Последнее редактирование: 19 янв 2019
    zapsip и Nemko нравится это.
  3. Пользователь

    Регистрация:
    25 дек 2016
    Сообщения:
    149
    Симпатии:
    25
    Благодарю. Буду изучать. Хотя это сложно.
    У меня есть фрагмент похожий :

    Procedure CurStepChanged(CurStep: TSetupStep);
    begin
    ISDoneCurStep(CurStep);
    end;
    Подскажите, где у меня ошибка ?
    [​IMG]

    К моей задаче можно подойти и с другой стороны : Как добавить к ярлыку (основного ) исполняемого (запускаемого) файла некий параметр ?
    Не вручную, разумеется, а назначить автоматически в процессе установки игры.
    Может, такая задача легче для исполнения в скрипте ?
     
    Последнее редактирование: 20 янв 2019
  4. Пользователь

    Регистрация:
    28 янв 2016
    Сообщения:
    76
    Симпатии:
    33
    Пол:
    Мужской
    А почему бы дополнительные иконки не создать через секцию Icons?
    Name: "{group}\{#MyAppName}"; Filename: {app}\Bin\S.exe; IconFilename: {app}\1.ico;
    Name: "{group}\Выбор языка"; Filename: {app}\Engine\Language Selector.exe; IconFilename: {app}\2.ico;
    Про параметр к экзешнику, если я правильно понял, то как-то так:
    [Icons]
    Name: "{group}\II"; Filename: "{app}\2.exe"; Parameters: "-mod"; WorkingDir: "{app}";
    Name: "{commondesktop}\II"; Filename: "{app}\2.exe"; Parameters: "-mod"; WorkingDir: "{app}";
     
    zapsip нравится это.
  5. Старожил Супер модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    408
    Симпатии:
    427
    Пол:
    Мужской
    zapsip оператор выбора case находится не в "теле" самой процедуры CurStepChanged, да и вообще написано как-то странно, две одинаковые процедуры CurStepChanged с разными параметрами
    (ИМХО конечно же лучше соединить в одной).

    Код (Inno):
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      case CurStep of
      ssPostInstall: begin
      if ActiveLanguage = "Russian" then CreateShellLink(ExpandConstant('{commondesktop}\Rus.lnk'), '', ExpandConstant('{app}\Rus.bat'), '', '', ExpandConstant('{app}\Rus.ico'), 0, 0);
      else CreateShellLink(ExpandConstant('{commondesktop}\Eng.lnk'), '', ExpandConstant('{app}\Eng.bat'), '', '', ExpandConstant('{app}\Eng.ico'), 0, 0);
     end;
    end;
      IsDoneUnpack(CurStep);
    end;
     
    Последнее редактирование: 19 янв 2019
    zapsip нравится это.
  6. Старожил

    Регистрация:
    31 мар 2015
    Сообщения:
    332
    Симпатии:
    171
    Пол:
    Мужской
    Виктор, скорее всего процедура IsDoneUnpack выполняется во время установки...
    Код (Inno):
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
      case CurStep of
      ssInstall: IsDoneUnpack(CurStep);
      ssPostInstall: begin
    if ActiveLanguage = 'Russian' then
      CreateShellLink(ExpandConstant('{commondesktop}\Rus.lnk'), '', ExpandConstant('{app}\Rus.bat'), 'параметры запуска', '', ExpandConstant('{app}\Rus.ico'), 0, 0) else
      CreateShellLink(ExpandConstant('{commondesktop}\Eng.lnk'), '', ExpandConstant('{app}\Eng.bat'), 'параметры запуска', '', ExpandConstant('{app}\Eng.ico'), 0, 0);
      end;
      end;
    end;
     
    Последнее редактирование: 19 янв 2019
    zapsip нравится это.
  7. Пользователь

    Регистрация:
    25 дек 2016
    Сообщения:
    149
    Симпатии:
    25
    SBalykov, Косой, Nemko, Всем спасибо.

    Для решения моей задачи мне помогло
    Косой,
    Name: "{commondesktop}\II"; Filename: "{app}\2.exe"; Parameters: "-mod"; WorkingDir: "{app}";

    Это решение и было использовано для репака игры DESOLATE на сайте русторка , автор репака zapsip8

    Тем не менее, изучаю иные предложенные способы.
    Хочу понять их все.
     
    Последнее редактирование: 20 янв 2019
  8. Старожил Супер модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    408
    Симпатии:
    427
    Пол:
    Мужской
     
    zapsip нравится это.
  9. Старожил

    Регистрация:
    31 мар 2015
    Сообщения:
    332
    Симпатии:
    171
    Пол:
    Мужской
    Согласен ...
     
    zapsip нравится это.
  10. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.302
    Симпатии:
    836
    нажать ctrl, щелчок по наименованию функции и увидеть
    function CreateShellLink(const Filename, Description, ShortcutTo, Parameters, WorkingDir, IconFilename: String; const IconIndex, ShowCmd: Integer): String;
    ну а дальше только английский.
     
    zapsip нравится это.

Поделиться этой страницей