|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать JIeT4uK
У меня работает: #define MyAppName "My Program" [Setup] DefaultDirName={pf}\{#MyAppName} [Files] Source: MyProg.exe; DestDir: {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%7b{3B97C9A2-56CE-480B-AD59-9B320479A5CE}_is1,InstallLocation|{pf}\{#MyAppName}} Вы используете директиву ArchitecturesInstallIn64BitMode=x64, которая означает, что инсталлятор будет работать в 64-разрядном режиме, имеет смысл использовать в том случае, если ваше приложение так же 64-разрядное. Имейте это в виду! Если ваше приложение, которое вы компилируете, 32-битное, то не используйте данную директиву, иначе будут проблемы при установке на ОС x64, например, путь, указанный в константе {reg:} не обнаружиться. Прошу прощения, я был не прав. Использование двойных фигурных скобок внутри константы не работает, как в других случаях, я не знал об этом нюансе. |
Отправлено: 18:40, 20-01-2018 | #2441 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата boss911:
Константы
Главную роль в скрипте играют константы. Константы всегда заключаются в фигурные скобки { }. Инсталлятор (или деинсталлятор) присваивает константам значения, котроые определяются пользователем, либо опираясь на конфигурацию системы. Например, {win} будет воспринята компилятором как "C:\WINDOWS", если ОС установлена в эту папку.
Символ "{" рассматривается как начало константы. Если требуется ввести "{", наберите ее два раза. (You do not need to double "}" characters.) Если за константой следует обратный слеш ("\"), инсталлятор его автоматически удалит, если константа уже оканчивается на обратный слеш. Например, если константа {const} имеет значение "C:\", а мы введем {constantname}\filename, в конечном счете получится "C:\filename", а не "C:\\filename", как должно быть по логике. Если требуется вывести именно "C:\\filename", обратный слеш придется заключить в фигурные скобки: {const}{\}\filename. Список поддерживаемых констант. Константы папок {app} Папка, куда устанавливается приложение. Она выбирается пользователем в окне Выбор папки назначения при установке. Например: если Вы ввели {app}\MYPROG.EXE в значение параметра Source и пользователь пожелал установить Вашу программу в "C:\MYPROG", на выходе получится "C:\MYPROG\MYPROG.EXE". {win} Папка, где установлена Windows. Например: ввели {win}\MYPROG.INI , папка Windows "C:\WINDOWS", на выходе "C:\WINDOWS\MYPROG.INI". {sys} Системная папка Windows. Например: ввели {sys}\CTL3D32.DLL системная папка Windows "C:\WINDOWS\SYSTEM", на выходе "C:\WINDOWS\SYSTEM\CTL3D32.DLL". На 64-разрядном Windows, по умолчанию, путь System32, возвращаемый этой константой указывает к папке, содержащий 32-разрядные системные файлы, точно так же как в 32-разрядном Windows. (Константа может быть переопределена включением 64-разрядного режима.) {syswow64} На 64-разрядном Windows системная папка SysWOW64, обычно "C:\WINDOWS\SysWOW64". Это каталог, в котором находятся 32-разрядные системные файлы. Не используйте эту константу, если нет необходимости получить имя каталога, в котором находятся 32-разрядные системные файлы. Многократное использование {syswow64} в местах, где {sys} будет достаточен, может вызвать проблемы. (Для примера см. документацию флага sharedfile секции [Files].) {src} Папка, в которой находится инсталлятор. Например: ввели {src}\MYPROG.EXE, инсталлятор запущен из "S:\", на выходе "S:\MYPROG.EXE". {sd} Системный диск, на котором установлен Windows. Обычно это "C:". Эта константа эквивалентна переменной среды SystemDrive. {pf} Путь к папке Program Files. {pf} эквивалентна {pf32}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {pf64}. {pf32} Путь к 32-разрядной системной папке Program Files, обычно "C:\Program Files" в 32-разрядном Windows и "C:\Program Files (x86)" в 64-разрядном Windows. {pf64} Только для 64-разрядного Windows: 64-разрядные программные файлы. Путь к 64-разрядной системной папке Program Files, обычно "C:\Program Files". Будет исключение, если предпринять попытку использования этой константы в 32-разрядном Windows. {cf} Общие файлы - Common Files. {cf} эквивалентна {cf32}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {cf64}. {cf32} 32-разрядные общие файлы. Путь к 32-разрядной системной папке Common Files, обычно "C:\Program Files\Common Files" в 32-разрядном Windows и "C:\Program Files (x86)\Common Files" в 64-разрядном Windows. {cf64} Только для 64-разрядного Windows: 64-разрядные общие файлы. Путь к 64-разрядной системной папке Common Files, обычно "C:\Program Files\Common Files". Будет исключение, если предпринять попытку использования этой константы в 32-разрядном Windows. {tmp} Временная папка. Это не значение переменной среды TEMP пользователя. Это папка, где создаются временные файлы инсталлятора ("C:\WINDOWS\TEMP\IS-xxxxx.tmp"). Все файлы и папки удаляются из папки Temp после завершения установки приложения. Эта константа используется в случае, если в секции [Run] указаны файлы, необходимые при инсталляции, но не нужные для дальнейшей работы приложения. {fonts} Папка шрифтов. Обычно именуется FONTS и находится в папке Windows. {dao} Папка DAO. Эквивалентна {cf}\Microsoft Shared\DAO. {dotnet11} 32-разрядная корневая папка .NET Framework версии 1.1. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 1.1. {dotnet20} Корневая папка .NET Framework версии 2. {dotnet20} эквивалентна {dotnet2032}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {dotnet2064}. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 2. {dotnet2032} 32-разрядная корневая папка .NET Framework версии 2. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 2. {dotnet2064} Только для 64-разрядного Windows: 64-разрядная корневая папка .NET Framework версии 2. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 2. {dotnet40} Корневая папка .NET Framework версии 4. {dotnet40} эквивалентна {dotnet4032}, если инсталлятор не работает в 64-разрядном режиме, иначе эквивалентна {dotnet4064}. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 4. {dotnet4032} 32-разрядная корневая папка .NET Framework версии 4. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 4. {dotne4064} Только для 64-разрядного Windows: 64-разрядная корневая папка .NET Framework версии 4. Будет исключение, если предпринять попытку использования этой константы в системе, где не установлена .NET Framework версии 4. Константы специальных папок В Inno Setup используются и другие константы, именуемые константами специальных папок. Используются они так же, как и константы папок. Константы "common" являются общими для всех профилей пользователей. Константы "user" берутся из профиля текущего пользователя, от имени которого выполняется инсталлятор. А пользователь часто не тот, который находится в системе, так что используйте константы "user" с осторожностью. Как уже говорилось, константы специальных папок применимы ко всем версиям Windows, поддерживающих Inno Setup. * = константа "common" равна константе "user", если пользователь, устанавливающий приложение, является администратором или PrivilegesRequired=lowest {group} Путь к группе меню Пуск, который пользователь может изменить на странице Выберите папку в меню «Пуск». Эта папка всегда создается для всех профилей пользователей, если только пользователь, устанавливающий приложение, не имеет прав администратора, иначе путь задается только для профиля текущего пользователя. {localappdata} Путь к локальной папке приложения (не Roaming). {sendto} Путь к папке Send To пользователя (общей Send To папки нет). {userappdata} & {commonappdata} Путь к папке с данными приложения (Application Data). {usercf} Путь к папке Common Files текущего пользователя. Константа поддерживается только в Windows 7 и более поздних версиях. При использовании в предыдущих версиях Windows значение константы будет заменено на {localappdata}\Programs\Common. {userdesktop} & {commondesktop} * Путь к папке рабочего стола. {userdocs} & {commondocs} Путь к папке Мои документы. {userfavorites} & {commonfavorites} * Путь к папке Избранное. {userpf} Путь к папке Program Files текущего пользователя. Константа поддерживается только в Windows 7 и более поздних версиях. При использовании в предыдущих версиях Windows значение константы будет заменено на {localappdata}\Programs. {userprograms} & {commonprograms} * Путь к папке Программы в меню Пуск. {userstartmenu} & {commonstartmenu} * Путь к "корню" меню Пуск. {userstartup} & {commonstartup} * Путь к папке Автозагрузка в меню Пуск. {usertemplates} & {commontemplates} * Путь к папке шаблонов. Прочие константы {\} Обратный слеш. Прочитайте в начале этой страницы о правилах использования {\} и \. {%NAME|DefaultValue} Вставляет значение переменной среды.
{cmd} Полный путь к стандартному системному интерпретатору. Это обычно Windows\System32\cmd.exe. При этом переменная среды COMSPEC не используется. {computername} Имя компьютера, на котором запущен инсталлятор или деинсталлятор (результат функции GetComputerName). {drive:Path} Возвращает букву диска и двоеточие из указанного пути (например, "C:"). В случае установки через сеть возвращает имя сервера и имя общего документа (например, "\\SERVER\SHARE").
{groupname} Имя папки, которую пользователь выбрал на странице Выберите папку в меню «Пуск». В отличие от константы {group} эта константа равна имени папки «Пуск», а не полному пути к ней. {hwnd} (Специального назначения) Дескриптор фонового окна инсталлятора. {wizardhwnd} (Специального назначения) Дескриптор окна мастера инсталлятора. Равен '0', если на момент обращения окно не существует. {ini:Filename,Section,Key|DefaultValue} Берет значение из .INI файла.
{language} Встроенное имя выбранного языка. Для справки обратитесь к секции [Languages]. {cm:MessageName} {cm:MessageName,Arguments} Возвращает стандартное сообщение на заданном языке.
Пример выдает "Launch Inno Setup", если выбран английский язык. {reg:HKxx\SubkeyName,ValueName|DefaultValue} Возвращает значение реестра.
{param:ParamName|DefaultValue} Возвращает параметры командной строки.
Возвращает c:\My Program, если в командной строке введен /Path="c:\My Program". {srcexe} Полный путь инсталлятора, например "C:\SETUP.EXE". {uninstallexe} Полный путь деинсталлятора, например "C:\Program Files\My Program\unins000.exe". Эта константа чаще всего используется в секции [Icons] для задания иконки деинсталлятора. Действует только если директиве Uninstallable секции [Setup] присвоено значение yes (по умолчанию). {sysuserinfoname} {sysuserinfoorg} Имя и организация, соответственно, к которым зарегистрирован Windows. Эта информация берется из реестра. {userinfoname} {userinfoorg} {userinfoserial} Имя, организация и серийный номер, которые пользователь указал на странице Информация о пользователе (эту страницу можно активировать директивой UserInfoPage). Обычно эти константы используются в секциях [INI] и [Registry], чтобы сохранить их значения для дальнейшего использования. {username} Имя пользователя, запустившего инсталлятор или деинсталлятор (результат функции GetUserName). {log} Имя файла системного журнала, или пустая строка, если журналирование не включено. |
|
------- Последний раз редактировалось Nordek, 21-01-2018 в 22:49. Отправлено: 04:54, 21-01-2018 | #2442 |
Alien Сообщения: 4262
|
Профиль | Отправить PM | Цитировать Nordek, спасибо, но русифицированный ISetup.chm имеется, только заглядываю я туда по случаю, как раз такой случай был несколькими часами тому назад.
|
Отправлено: 16:22, 21-01-2018 | #2443 |
Покинул форум Сообщения: 55
|
подскажите пожалуйста как прописать 4 exe файла в скрипте
вот скрип с файлами http://rgho.st/8TsjZx2Y6 |
Отправлено: 15:02, 22-01-2018 | #2444 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать web_form
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application [Files] Source: "MyProg-1.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "MyProg-2.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "MyProg-3.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "MyProg-4.exe"; DestDir: "{app}"; Flags: ignoreversion |
------- Отправлено: 18:35, 22-01-2018 | #2445 |
Покинул форум Сообщения: 55
|
ZVSRus, выдает ошибку https://s8.hostingkartinok.com/uploa...81328d7ca2.png
я прописал и так не получилось //===== [Game exe 1] =====\\: #define LinkName "Начать сетевую игру Call of Duty" #define ExeName "CoDMP.exe" #define ExeIco "CoDMP.exe" ////===== [Game exe 2] =====\\: #define LinkName2 "Начать одиночную игру Call of Duty" #define ExeName2 "codsp.exe" ////===== [Game exe 3] =====\\: #define LinkName2 "Call of Duty - United Offensive Сетевая игра" #define ExeName2 "CoDUOMP.exe" ////===== [Game exe 4] =====\\: #define LinkName2 "Call of Duty - United Offensive Одиночная игра" #define ExeName2 "CoDUOSP.exe" |
Отправлено: 18:54, 22-01-2018 | #2446 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать web_form, написано, что исходный файл не найден по указанному пути.
|
Отправлено: 18:59, 22-01-2018 | #2447 |
Покинул форум Сообщения: 55
|
Iska, но я указал правильно путь к файлу
|
Отправлено: 19:02, 22-01-2018 | #2448 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать web_form
Проверь правильность пути, на вашем скрине и на примере что выше файлы должны лежать рядом со скриптом, если файлы лежат где то в папке, пропиши путь. |
------- Отправлено: 19:04, 22-01-2018 | #2449 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата web_form:
Также убедитетесь, что: У вас CoDMP.exe а не СoDMP.exe. |
|
------- Отправлено: 19:05, 22-01-2018 | #2450 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты 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 |
|