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

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

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

  1. Ветеран

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

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

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

    Регистрация:
    31 мар 2015
    Сообщения:
    324
    Симпатии:
    167
    Пол:
    Мужской
    Код (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
    Сообщения:
    145
    Симпатии:
    22
    Благодарю. Буду изучать. Хотя это сложно.
    У меня есть фрагмент похожий :

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

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

    Регистрация:
    28 янв 2016
    Сообщения:
    73
    Симпатии:
    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
    Сообщения:
    400
    Симпатии:
    422
    Пол:
    Мужской
    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
    Сообщения:
    324
    Симпатии:
    167
    Пол:
    Мужской
    Виктор, скорее всего процедура 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
    Сообщения:
    145
    Симпатии:
    22
    SBalykov, Косой, Nemko, Всем спасибо.

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

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

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

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

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

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

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