Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 7]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]

Отправлено: 11:48, 10-03-2014

 

Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Stealthmax, Как создать ключи для: Не создавать ярлык на рабочем столе, Не создавать ярлык в меню «Пуск»?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:31, 19-04-2014 | #471



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Stealthmax

Новый участник


Сообщения: 46
Благодарности: 15

Профиль | Цитировать


Цитата Dodakaedr:
Как создать ключи для: Не создавать ярлык на рабочем столе, Не создавать ярлык в меню «Пуск»? »
Ну все по той же схеме, что в примерах выше. Либо кастомные ключи делаешь для каждого чекбокса или используешь секцию Tasks.
Код: Выделить весь код
[Icons]
//здесь открепляем ярлыки от привязки к общей группе {group}
//{commonprograms}- общая для всех пользователей папка в меню Пуск
//{userprograms}- для отдельного пользователя в меню Пуск
Name: "{commonprograms}\{#MyAppName}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: StartMenu
Name: "{commonprograms}\{#MyAppName}\{cm:VisitSiteProduct,{#MyAppName}}"; Filename: "{#MyAppURL}"; Check: UrlMenu
Name: "{commonprograms}\{#MyAppName}\{cm:Uninstall} {#MyAppName}"; Filename: "{app}\{uninstallexe}"; Check: UninstallMenu
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: Desktop
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: QuickStart

[Languages]
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"

[CustomMessages]
Russian.VisitSiteProduct=Посетить сайт продукта
Russian.Uninstall=Удалить 

[_Code]
var 
  startmenu1 : boolean;

function StartMenu: Boolean;
begin
  Result := StartMenuRadioButton.Checked or startmenu1;
end;

Function InitializeSetup: Boolean;
var
   i : integer;
Begin
  for i:=2 to ParamCount do begin
  if ( Pos(LowerCase('/startmenu'), Lowercase(ParamStr(i))) > 0 ) then startmenu1 := true else startmenu1 := false; //назначаем ключ для выполнения задачи
  Result := True;
end;
end;
Если будешь использовать по отдельности для каждого ярлыка, то например, при наличием {group} будет игнорироваться состояние чекбокса, тут думаю понятно почему.
В этом примере самый простой способ. Используются ключи из справки: /TASKS="startmenu,urlmenu,uninstallicon,desktopicon,quicklaunchicon", либо так /COMPONENTS="component1,component2", чтобы не создавать /TASKS="!startmenu,!urlmenu,!uninstallicon,!desktopicon,!quicklaunchicon"- восклицательный знак перед именем задачи
Код: Выделить весь код
[Icons]
Name: "{commonprograms}\{#MyAppName}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: startmenu
Name: "{commonprograms}\{#MyAppName}\{cm:VisitSiteProduct,{#MyAppName}}"; Filename: "{#MyAppURL}"; Tasks: urlmenu
Name: "{commonprograms}\{#MyAppName}\{cm:Uninstall} {#MyAppName}"; Filename: "{app}\{#uninstallexe}"; Tasks: uninstallicon
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "startmenu"; Description: "{#MyAppName}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "urlmenu"; Description:"{cm:VisitSiteProduct,{#MyAppName}}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "uninstallicon"; Description: "{cm:Uninstall,{#MyAppName}}"; GroupDescription: "{cm:AdditionalIcons}";

[Languages]
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"

[CustomMessages]
Russian.VisitSiteProduct=Посетить сайт продукта
Russian.Uninstall=Удалить
Russian.CreateDesktopIcon=Создать ярлык на рабочем столе
Russian.CreateQuickLaunchIcon=Добавить ярлык в панель Быстрого запуска

Последний раз редактировалось Stealthmax, 19-04-2014 в 21:35. Причина: замечания Nordek


Отправлено: 18:19, 19-04-2014 | #472


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Stealthmax, Если предоставляешь код, то предоставляй рабочий вариант - чтоб за тебя никто не допиливал. Директив, CustomMessages и прочего тоже касается.
Например в Inno нет такого: {cm:Uninstall}; есть {cm:UninstallProgram,My Program}.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 20:11, 19-04-2014 | #473


Аватара для Stealthmax

Новый участник


Сообщения: 46
Благодарности: 15

Профиль | Цитировать


Цитата Nordek:
Если предоставляешь код, то предоставляй рабочий вариант - чтоб за тебя никто не допиливал. Директив, CustomMessages и прочего тоже касается.
Например в Inno нет такого: {cm:Uninstall}; есть {cm:UninstallProgram,My Program}. »
Здрасти, приехали. А может сразу тогда выкладывать скрипт по заявке? Тут вроде не стол заказов, а сообщество, где обмениваются опытом. А что касаемо Russian.isl, входящего в состав Inno, то это изврат на мой взгляд, мне не нравится, правлю под себя. И самое главное: если непонятно, то личка открыта, всегда пожалуйста или же прям здесь, меня не затруднит пояснить, а в данном конкретном случае попытался помочь человеку насколько это зависело от моего времени и возможностей. Я тоже с паскалем не родился в одном месте, делюсь знаниями, сам черпаю здесь многое для себя. Здесь есть умнее меня намного, но я их стараюсь не задалбывать вопросами из области элементарного, скорее где наверняка не понимаю. Так что претензия необоснованна в мой адрес.

P.S. Извиняй, если резко выразился. Человек не понял, не получилось, сразу мне отписал, решаем в личке.

Отправлено: 21:30, 19-04-2014 | #474


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Stealthmax
Цитата Stealthmax:
Тут вроде не стол заказов »
Но и не помойка. Данный раздел имеет тематический характер. Любой совет должен иметь содержательную информацию. Если такового не имеется - то и смысла писать нет вообще.

Цитата Stealthmax:
А что касаемо Russian.isl, входящего в состав Inno, то это изврат на мой взгляд »
Что именно здесь:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
AppPublisher=My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:ProgramOnTheWeb,My Program}; Filename: http://www.example.com
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
Name: {commondesktop}\My Program; Filename: {app}\MyProg.exe
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\My Program; Filename: {app}\MyProg.exe
находите под словом "изврат"?
Это самый простой и стандартный пример: который компилится даже в том случае, если и вовсе не имеется секции [Languages] - быть точнее:
Код: Выделить весь код
[Languages]
Name: default; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
Цитата Stealthmax:
мне не нравится, правлю под себя. »
Правьте, ваше право. Но не нужно думать что все расчёсываются вашей расчёской.

Цитата Stealthmax:
а в данном конкретном случае попытался помочь человеку »
Но нужно и наглядно показать наверно? Не понимаю как так выкладывать код не проверив. Кинуть огрызком кода который не может быть воспроизведён у другого человека - это не помощь, а создание геморроя.

Цитата Stealthmax:
решаем в личке. »
А что в личке? Ведь выложил же в том месте, где видно - значит им может полюбопытствовать любой желающий. Если вас сильно тяготит дать полный ответ, то конечно целесообразнее было вам помочь человеку в PM, чем потом здесь оправдываться.
Представим что этот код может заинтересовать новичка (кодеру то понятно - это как семечки лузгать) - но при попытке воспроизвести этот код выдаст ошибку "[ISPP] Undeclared identifier: "MyAppName""
при исправлении, а точнее при добавлении директивы #define со значениями.
Выскочит ещё одна ошибка, например "A custom message named "VisitSiteProduct" has not been defined. (и т.п.)"
потом "Required function or procedure 'StartMenu' not found."
наконец "Unknown identifier 'StartMenuRadioButton'" (и т.п.).
и это вместо того, чтоб один раз - дать полный ответ.

Сами же напарываетесь, а потом: "Не работает" или "Дали кривой код" и т.п.

Заметь, не все понимают что половина ответов содержится в справке.

Каждый по своему понимает. Каждый по своему делает. Но результат выходит один. Не важно каким именно способом проделан результат - важно что он работает правильно и без ошибок.

Не сделали никакого вывода - "тогда Ой".

Последний раз редактировалось Nordek, 29-10-2014 в 02:49.

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:10, 20-04-2014 | #475


Аватара для ROMKA-1977

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


Сообщения: 77
Благодарности: 2

Профиль | Отправить PM | Цитировать


Заметил такую особенность в ISDone: на странице распаковки файлов кнопка закрытия окна не работает хотя и кликабельна. Возможно ли наложить на неё функцию кнопки "отмена распаковки" или сделать неактивной как на странице завершения установки ?

Отправлено: 13:31, 20-04-2014 | #476


Аватара для Stealthmax

Новый участник


Сообщения: 46
Благодарности: 15

Профиль | Цитировать


Цитата Nordek:
Сами же напарываетесь, а потом: "Не работает" или "Дали кривой код" и т.п. »
Не вопрос, сейчас доделаю третий вариант с ключами и исправлю свой пост с исчерпывающими(рабочими) примерами на суд знатоков и начинающих, и надеюсь, что будет внесено в шапку.
Цитата Nordek:
Заметь, не все понимают что половина ответов содержится в справке. »
Ну это тоже верно, все ж хотят быстро и сразу, а так не бывает.

Отправлено: 23:59, 20-04-2014 | #477


Аватара для audiofeel

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


Сообщения: 128
Благодарности: 22

Профиль | Отправить PM | Цитировать


Цитата ROMKA-1977:
Возможно ли наложить на неё функцию кнопки "отмена распаковки" »
http://krinkels.org/attachments/isdo...-2012-7z.1429/
ты попробуй запустить скрипт ISDone_Example2.iss, все работает!!!
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:29, 21-04-2014 | #478


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


В скрипте используется такой msg
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
MessageBox(Application.Handle, 'Приятного использования!', '{#MyAppName}', MB_OK or $40);
end;
и он появляется когда используется тихая установка. Как сделать так чтобы только при тихой установке оно не появлялось??

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:03, 21-04-2014 | #479


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


Сообщения: 149
Благодарности: 38

Профиль | Отправить PM | Цитировать


Dodakaedr, попробуйте так
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
 if CurStep = ssDone then 
  if not WizardSilent then 
    MessageBox(Application.Handle, 'Приятного использования!', '{#MyAppName}', MB_OK or $40);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:14, 21-04-2014 | #480



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход