Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 [123] 124 125 126

boss911
20-01-2018, 18:40
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:} не обнаружиться.

Прошу прощения, я был не прав (http://forum.oszone.net/post-2792542-2433.html). Использование двойных фигурных скобок внутри константы не работает, как в других случаях, я не знал об этом нюансе.

Nordek
21-01-2018, 04:54
Использование двойных фигурных скобок внутри константы не работает, как в других случаях, я не знал об этом нюансе. »
Constants (http://www.jrsoftware.org/ishelp/index.php?topic=consts)
Главную роль в скрипте играют константы. Константы всегда заключаются в фигурные скобки { }. Инсталлятор (или деинсталлятор) присваивает константам значения, котроые определяются пользователем, либо опираясь на конфигурацию системы. Например, {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-разрядного режима (http://www.jrsoftware.org/ishelp/index.php?topic=32vs64bitinstalls).)


{syswow64}
На 64-разрядном Windows системная папка SysWOW64, обычно "C:\WINDOWS\SysWOW64". Это каталог, в котором находятся 32-разрядные системные файлы.

Не используйте эту константу, если нет необходимости получить имя каталога, в котором находятся 32-разрядные системные файлы. Многократное использование {syswow64} в местах, где {sys} будет достаточен, может вызвать проблемы. (Для примера см. документацию флага sharedfile секции [Files] (http://www.jrsoftware.org/ishelp/index.php?topic=filessection).)


{src}
Папка, в которой находится инсталлятор.
Например: ввели {src}\MYPROG.EXE, инсталлятор запущен из "S:\", на выходе "S:\MYPROG.EXE".


{sd}
Системный диск, на котором установлен Windows. Обычно это "C:". Эта константа эквивалентна переменной среды SystemDrive.


{pf}
Путь к папке Program Files. {pf} эквивалентна {pf32}, если инсталлятор не работает в 64-разрядном режиме (http://www.jrsoftware.org/ishelp/index.php?topic=32vs64bitinstalls), иначе эквивалентна {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-разрядном режиме (http://www.jrsoftware.org/ishelp/index.php?topic=32vs64bitinstalls), иначе эквивалентна {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-разрядном режиме (http://www.jrsoftware.org/ishelp/index.php?topic=32vs64bitinstalls), иначе эквивалентна {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-разрядном режиме (http://www.jrsoftware.org/ishelp/index.php?topic=32vs64bitinstalls), иначе эквивалентна {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}
Вставляет значение переменной среды.


NAME - имя переменной среды
DefaultValue - определяет текст, который будет вставлен в случае, если константа не существует
Для вставки запятой, вертикальной черты ("|"), или закрывающей фигурной скобки ("}") запишите нужный символ в виде "%-код символа.". Замените символ символом "%" и его двухразрядным шестнадцатеричным кодом. Запятая - "%2c", вертикальная черта - "%7c", и закрывающая фигурная скобка - "%7d". Если Вы хотите включить символ "%", используйте "%25".
NAME и DefaultValue могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.

Например:
{%COMSPEC}
{%PROMPT|$P$G}


{cmd}
Полный путь к стандартному системному интерпретатору. Это обычно Windows\System32\cmd.exe. При этом переменная среды COMSPEC не используется.


{computername}
Имя компьютера, на котором запущен инсталлятор или деинсталлятор (результат функции GetComputerName).


{drive:Path}
Возвращает букву диска и двоеточие из указанного пути (например, "C:"). В случае установки через сеть возвращает имя сервера и имя общего документа (например, "\\SERVER\SHARE").

Path - определяет путь.
Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
Path может содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.
Примеры:
{drive:{src}}
{drive:c:\path\file}
{drive:\\server\share\path\file}


{groupname}
Имя папки, которую пользователь выбрал на странице Выберите папку в меню «Пуск». В отличие от константы {group} эта константа равна имени папки «Пуск», а не полному пути к ней.


{hwnd}
(Специального назначения) Дескриптор фонового окна инсталлятора.


{wizardhwnd}
(Специального назначения) Дескриптор окна мастера инсталлятора. Равен '0', если на момент обращения окно не существует.


{ini:Filename,Section,Key|DefaultValue}
Берет значение из .INI файла.


Filename - имя ini-файла, из которого производится чтение
Section - имя секции
Key - имя ключа
DefaultValue - значение, возвращаемое, если параметр не существует
Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
Filename, Section, и Key могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.

Например:
{ini:{win}\MyProg.ini,Settings,Path|{pf}\My Program}


{language}
Встроенное имя выбранного языка. Для справки обратитесь к секции [Languages] (http://www.jrsoftware.org/ishelp/index.php?topic=languagessection).


{cm:MessageName}
{cm:MessageName,Arguments}
Возвращает стандартное сообщение на заданном языке.


MessageName - имя стандартного сообщения, из которого производится считывание. Для справки обратитесь к секции [CustomMessages] (http://www.jrsoftware.org/ishelp/index.php?topic=custommessagessection) .
Arguments - аргументы сообщения, разделенные запятыми
Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
Каждый аргумент в Arguments может содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.

Например:
{cm:LaunchProgram,Inno Setup}
Пример выдает "Launch Inno Setup", если выбран английский язык.


{reg:HKxx\SubkeyName,ValueName|DefaultValue}
Возвращает значение реестра.


HKxx - определяет корневой ключ. Для справки обратитесь к секции [Registry] (http://www.jrsoftware.org/ishelp/index.php?topic=registrysection)
SubkeyName - имя раздела
ValueName - имя параметра. Пустой параметр = "По умолчанию".
DefaultValue - значение, возвращаемое, если параметр не существует или не строкового типа (REG_SZ или REG_EXPAND_SZ)
Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
SubkeyName, ValueName, и DefaultValue могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.

Например:
{reg:HKLM\Software\My Program,Path|{pf}\My Program}



{param:ParamName|DefaultValue}
Возвращает параметры командной строки.


ParamName - имя параметра
DefaultValue - значение, возвращаемое, если запрашиваемое значение не существует или не может быть определено.
Для вставки запятой, "|", или "}" запишите нужный символ в виде"%-код символа.". Например, запятая - это "%2c", вертикальная черта - "%7c", "}" - "%7d". "%" = "%25".
ParamName и могут содержать константы. Обратите внимание, что описанным выше способом закрывающая фигурная скобка задается только в случае, когда она используется сама по себе. Если же она обозначает константу, подобные изощрения не нужны.

Например:
{param:Path|{pf}\My Program}
Возвращает c:\My Program, если в командной строке введен /Path="c:\My Program".



{srcexe}
Полный путь инсталлятора, например "C:\SETUP.EXE".


{uninstallexe}
Полный путь деинсталлятора, например "C:\Program Files\My Program\unins000.exe". Эта константа чаще всего используется в секции [Icons] (http://www.jrsoftware.org/ishelp/index.php?topic=iconssection) для задания иконки деинсталлятора. Действует только если директиве Uninstallable секции [Setup] (http://www.jrsoftware.org/ishelp/index.php?topic=setupsection) присвоено значение yes (по умолчанию).


{sysuserinfoname}
{sysuserinfoorg}
Имя и организация, соответственно, к которым зарегистрирован Windows. Эта информация берется из реестра.


{userinfoname}
{userinfoorg}
{userinfoserial}
Имя, организация и серийный номер, которые пользователь указал на странице Информация о пользователе (эту страницу можно активировать директивой UserInfoPage). Обычно эти константы используются в секциях [INI] (http://www.jrsoftware.org/ishelp/index.php?topic=inisection) и [Registry] (http://www.jrsoftware.org/ishelp/index.php?topic=registrysection), чтобы сохранить их значения для дальнейшего использования.


{username}
Имя пользователя, запустившего инсталлятор или деинсталлятор (результат функции GetUserName).


{log}
Имя файла системного журнала, или пустая строка, если журналирование (http://www.jrsoftware.org/ishelp/topic_setup_setuplogging.htm) не включено.

boss911
21-01-2018, 16:22
Nordek, спасибо, но русифицированный ISetup.chm имеется, только заглядываю я туда по случаю, как раз такой случай был несколькими часами тому назад.

ENERGES
22-01-2018, 15:02
подскажите пожалуйста как прописать 4 exe файла в скрипте
вот скрип с файлами http://rgho.st/8TsjZx2Y6

ZVSRus
22-01-2018, 18:35
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

ENERGES
22-01-2018, 18:54
ZVSRus, выдает ошибку https://s8.hostingkartinok.com/uploads/images/2018/01/7a7326165c9a3cfc831f3d81328d7ca2.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"

Iska
22-01-2018, 18:59
web_form, написано, что исходный файл не найден по указанному пути.

ENERGES
22-01-2018, 19:02
Iska, но я указал правильно путь к файлу

ZVSRus
22-01-2018, 19:04
web_form
Проверь правильность пути, на вашем скрине и на примере что выше файлы должны лежать рядом со скриптом, если файлы лежат где то в папке, пропиши путь.

Nordek
22-01-2018, 19:05
выдает ошибку https://s8.hostingkartinok.com/uploads/images/2018/01/7a7326165c9a3cfc831f3d81328d7ca2.png »Говорит о том, что, файл CoDMP.exe не существует - Проверьте правильность расположения файла или корректность указанного пути в скрипте.
Также убедитетесь, что: У вас CoDMP.exe а не СoDMP.exe.

ENERGES
22-01-2018, 19:06
ZVSRus, как это сделать?

ZVSRus
22-01-2018, 19:10
web_form
Где у вас лежит CoDMP.exe (в папке или ещё в подпапке)

ENERGES
22-01-2018, 19:12
ZVSRus, может через TeamViewer поможете ,я вам личику пароль и логин скинул ,дело на 5 минут
https://s8.hostingkartinok.com/uploads/images/2018/01/39bf4585745faf5ac2b8ca6dae035165.png

Nordek
22-01-2018, 19:20
https://s8.hostingkartinok.com/uploads/images/2018/01/39bf4585745faf5ac2b8ca6dae035165.png »Для наглядности:

Source: "CoDMP.exe"; DestDir: "{app}"; Flags: ignoreversion

Source: "New Folder\CoDMP.exe"; DestDir: "{app}"; Flags: ignoreversion

ZVSRus
22-01-2018, 19:20
web_form
Зайдите в папку где лежат у вас файлы для установки, далее скопируйте адрес из адрессной строки и покажи.

Например так:

D:\!!!_РАЗДАЧА-3_!!!\YTD Video Downloader PRO 5.9.2 RePack (& Portable) by ZVSRus

В этой папке у меня лежат 4 файла.

ENERGES
22-01-2018, 19:25
ZVSRus, может через TeamViewer поможете я так нечего не понимаю так быстрее будет и по понятнее
430 691 576
518btj

ZVSRus
22-01-2018, 19:28
web_form
То что вы показываете, я в этом круглый 0

PS: Что вы хотите сделать игру или программу?

ENERGES
22-01-2018, 19:32
ZVSRus, игру
там нечего сложного видёте мой ID и пароль и подключаетесь мой компьютер у вас рабочем столе открывается мой рабочи стол там как бы вы управляете моим компоп

Iska
22-01-2018, 19:46
web_form, что непонятного-то? Файла по указанному пути нет. Коллега Nordek по Вашему скриншоту показал, где он на самом деле есть:
Source: "New Folder\CoDMP.exe"; DestDir: "{app}"; Flags: ignoreversion »

ENERGES
22-01-2018, 19:50
Iska, пробовал и так выдает ту же ошибку




© OSzone.net 2001-2012