Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: CUTA
Дата сообщения: 24.03.2016 15:57
boss_911

Цитата:
Инсталлятор должен запускаться в среде, где отсутствует WOW64, короче говоря, на этапе установки Win7/8/10 x64 (boot.wim)

Я что то не понял, а разве в образе boot.wim нет WOW64, вы сами поняли что сказали? Всё там есть и делятся они на 32 bit или 64, так что в чём проблема?
Автор: boss_911
Дата сообщения: 24.03.2016 20:02
innonewbie

Цитата:
может быть ArchitecturesAllowed=x64 поможет?

Как? Это для проверки архитектуры ОС, если битность ОС не соответствует заданной, инсталл просто об этом сообщит и на этом все.

CUTA

Цитата:
вы сами поняли что сказали?

А бывает иначе? Я не буду спорить, есть ли в WinPE7 x64 (boot.wim) WOW64 или нет его там, человек, который лучше знает содержимое WIM образов, мне сказал, что нет.

Цитата:
так что в чём проблема?

В том, что в этой среде не запускаются 32-х битные приложения, при запуске инсталла на основе IS, ругается, что не может выполнить этот образ из-за отсутствия нужных компонентов (как-то так), запуск приложения происходит из командной строки. Не верится? Грузимся в установку Win7 x64, жмем Shift+F10, набираем путь к инсталлу на базе IS и выполняем.
Автор: At1ant
Дата сообщения: 24.03.2016 21:24
CUTA WinPE что в оригинальных x64 установочных дистрибутивах Windows, не поддерживает х32 приложения (слишком урезанная), только софт с нативным х64 кодом. А boss_911 хочет запустить свой пакет на основе Inno Setup. На сколько я понимаю Inno не умеет генерировать нативный х64 код, или нет ?

Автор: CUTA
Дата сообщения: 24.03.2016 21:58
boss_911
Я наверное тупой, ни разу не не работал с Windows PE, и уж точно не запускал 32 битные приложения.
Вы вообще в курсе что inno setup это не среда для разработки приложений, а средство для создания установочных пакетов (дистрибутивов) программ. Установщик не должен быть 64 битным, напротив он должен быть 32-х битным. Вы вообще встречали 64-х битный установочный exe?
Автор: painter7
Дата сообщения: 24.03.2016 22:11
boss_911 ну если на то пошло, то из сорков инно собрать 64 разрядный лодырь инсталлки, но стоит ли это того?
Автор: boss_911
Дата сообщения: 25.03.2016 16:17
CUTA

Цитата:
Я наверное тупой, ни разу не не работал с Windows PE

Вам виднее, но видимо все же не доходит, что речь идет о Win7 PE x64, которая в образе boot.wim, которая загружается с загрузочного носителя, которая потом ставит основную ОС (из install.wim). Эта Win7 PE x64 очень урезана, нет там WOW64, 32-х битные приложения там не запускаются.
boss911, 20:02 24-03-2016
Цитата:
Не верится? Грузимся в установку Win7 x64, жмем Shift+F10, набираем путь к инсталлу на базе IS и выполняем.


Цитата:
Вы вообще в курсе что inno setup это не среда для разработки приложений, а средство для создания установочных пакетов (дистрибутивов) программ.

Это вопрос? Тогда это дурацкий вопрос, вот такой вот вам ответ на него.

Цитата:
Установщик не должен быть 64 битным, напротив он должен быть 32-х битным.

С одной стороны вы правы, с другой стороны выше утверждение бредово. Например, у меня есть 64-х приложение состоящие из нескольких файлов, для удобства мне его надо упаковать в инсталлятор, зачем мне его паковать в 32-х битный инсталл, чтобы потом запускать на 32-х битной ОС (зачем)? Зачем MS свои KB (обновления) пакуют в 64-битные SFX архивы? Это риторические вопросы, ваш ответ на их мне не интересен.

Цитата:
Вы вообще встречали 64-х битный установочный exe?

Не знаю, можно ли считать SFX архив установщиком, я бы ответил, что да и нет. Так вот, WinRAR x64 создает 64-х битный SFX. Точно не помню, но вроде попадался 64-х битный установщик собранный в NSIS.

painter7

Цитата:
стоит ли это того?

Нет, особенно если есть другое решение (ПО), а оно есть.
Автор: Sutar
Дата сообщения: 26.03.2016 23:12
ребят подскажите, перенести страницу "Выбор папки установки в Пуск" переместить на страницу "Выбор папки установки"?
Автор: nik1967
Дата сообщения: 27.03.2016 12:55
Sutar,
[more=Inno Setup Faq. Ярлык на раб. стол и прог. папку на одной стр.][code][code][font=Courier New]#define MyAppName "My Program"
#define MyAppVerName "My Program 1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
AppId={295875A7-8789-4313-8438-D809C261C4A7}
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
OutputDir=.
DisableProgramGroupPage=true

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

[Files]
Source: "compiler:Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: MakeStartMenuIcon
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: MakeDesktopIcon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}"; Flags: nowait postinstall skipifsilent

[Code]
[color=#0000FF]var
StartMenuIcon,DeSutar
Автор: Sutar
Дата сообщения: 28.03.2016 16:59
nik1967
можете ещё раз скинуть? Код обрезался
Автор: vanik1967
Дата сообщения: 28.03.2016 23:56
Почему меня деактивировали на руборде? Мой ник - nik1967. Пришлось зарегистрировать другой аккаунт, чтобы написать. Просьба восстановить мой прежний аккаунт, а этот удалить.

Цитата:
Отправлено: 14:55 27-03-2016 | Исправлено: yes,
Как так то?
Автор: boss_911
Дата сообщения: 29.03.2016 01:12
vanik1967

Цитата:
Почему меня деактивировали на руборде?

Не вы один.
http://forum.ru-board.com/topic.cgi?forum=2&topic=5395&start=1140

Много народу пострадало, а так же тем (названия и шапки). Это вторая волна сбоя форума, первая была в ноябре 20015-го, тогда никого не восстановили (некому было), в том числе и меня.
Автор: vanik1967
Дата сообщения: 29.03.2016 09:52
Sutar, скачай Русская справка к версии 5.5.5 из шапки. В ней, в поиске набери Ярлык на раб. стол и прог. папку на одной стр.

Цитата:
nik1967
можете ещё раз скинуть? Код обрезался
Не могу. Потеряшка я
Временно (надеюсь) я vanik1967 (клон nik1967)
Автор: tahirg
Дата сообщения: 29.03.2016 10:09
решено
Автор: Sutar
Дата сообщения: 31.03.2016 13:21
vanik1967

Код: Переход на веб-страницу отменен

Попробуйте сделать следующее:
Повторите ввод адреса.

Автор: vanik1967
Дата сообщения: 31.03.2016 16:39
Sutar, писали об этом 100500 раз - правой кнопкой по файлу справки=>свойства=>разблокировать.
Автор: nektoktoto
Дата сообщения: 03.04.2016 00:12
del
Автор: BUU
Дата сообщения: 03.04.2016 06:54
Всем привет, помогите пожалуйста, как сделать чтоб текст который вводится со страницы при установке писался в ini после слова со знаком =

Вот код
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then RecodePCF;
if CurStep = ssDone then begin
if ((LPEdit[0].Text <> '') and (LPEdit[1].Text <> '')) then
SaveStringToFile(ExpandConstant('{app}\b2m.ini'),LPEdit[0].Text + #13#10 + LPEdit[1].Text, False); { #13#10 - перенос строки}
MsgBox(ExpandConstant('{cm:fnsxgm}'), mbInformation, MB_OK);
end;

Вот пример
[Authorization]
login=xxx
password=xxx


Спс заранее
Автор: Robby
Дата сообщения: 03.04.2016 08:47
BUU

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then RecodePCF;
if CurStep = ssDone then begin
if ((LPEdit[0].Text <> '') and (LPEdit[1].Text <> '')) then
SaveStringToFile(ExpandConstant('{app}\b2m.ini'),'login='+LPEdit[0].Text + #13#10 + 'password='+LPEdit[1].Text, False); { #13#10 - перенос строки}
MsgBox(ExpandConstant('{cm:fnsxgm}'), mbInformation, MB_OK);
end;
Автор: BUU
Дата сообщения: 03.04.2016 09:12

Цитата:
Robby

Мне нужно через код, ибо активируется при определенных действиях
Автор: Robby
Дата сообщения: 03.04.2016 13:43
BUU
так это как раз через код

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then RecodePCF;
if CurStep = ssDone then begin
if ((LPEdit[0].Text <> '') and (LPEdit[1].Text <> '')) then
SetIniString('Authorization', 'Login', LPEdit[0].Text, ExpandConstant( '{app}\b2m.ini'));
SetIniString('Authorization', 'Password', LPEdit[1].Text, ExpandConstant('{app}\b2m.ini'));

MsgBox(ExpandConstant('{cm:fnsxgm}'), mbInformation, MB_OK);
end;
Автор: painter7
Дата сообщения: 03.04.2016 15:15
Robby, small fix:

Код: procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then RecodePCF;
if CurStep = ssDone then begin
if ((LPEdit[0].Text <> '') and (LPEdit[1].Text <> '')) then
begin
SetIniString('Authorization', 'Login', LPEdit[0].Text, ExpandConstant( '{app}\b2m.ini'));
SetIniString('Authorization', 'Password', LPEdit[1].Text, ExpandConstant('{app}\b2m.ini'));
end;

MsgBox(ExpandConstant('{cm:fnsxgm}'), mbInformation, MB_OK);
end;
Автор: BUU
Дата сообщения: 03.04.2016 19:53

Цитата:
Robby

Спс все работает
Автор: The Unforgiven
Дата сообщения: 06.04.2016 16:17
Inno Setup 5.5.9

Обновил ссылки в шапке.

[more=Что нового]

5.5.9 (2016-04-06)

· To further help protect installers against potential DLL preloading attacks, Setup/Uninstall now calls SetDefaultDllDirectories if available to remove the application directory from the DLL search order. If SetDefaultDllDirectories is not available or cannot be called, it now additionally preloads a set of system DLLs known to be loaded unsafely by older or unpatched versions of Windows.

· Change in default behavior: the OutputBaseFileName [Setup] section directive now defaults to mysetup instead of setup. Setting it back to setup is not recommended: all executables named "setup.exe" are shimmed by Windows application compatibility to load additional DLLs, such as version.dll. These DLLs are loaded unsafely by Windows and can be hijacked. If you do so anyway, the compiler will issue a warning.

· Added new [Files] section flags: sign and signonce. Instructs the compiler to digitally sign the original source files before storing them. Ignored if [Setup] section directive SignTool is not set. Inno Setup's own compiler files are now also signed.

· [Setup] section directive LZMADictionarySize now allows the LZMA dictionary size to be increased up to 1 GB from the previous maximum of 256 MB. Review the memory requirements listed in the Compression topic before using!

· Improved the "auto-retry" feature of the [Files] section: it now also retries if MoveFile failed even if the preceding DeleteFile succeeded. Additionally, if MoveFile keeps failing it will now register the file to be replaced on restart if the restartreplace [Files] section flag is used instead of displaying an error message.

· The value of the AppVersion directive is now not only used to set the MajorVersion and MinorVersion values in the Uninstall registry key when possible but also used to set the VersionMajor and VersionMinor values as required by newer versions of the Windows App Certification Kit.

· Inno Setup Preprocessor (ISPP) changes:
    · Added new function RemoveFileExt.
    · Documented predefined variable ISPPCC_INVOKED.
    · Console-mode compiler (ISCC) change: Added new command line parameter /J. Can be used to #include additional files.

· Unicode Inno Setup: Added official Armenian translation.

· Minor tweaks.

[/more]
Автор: nektoktoto
Дата сообщения: 07.04.2016 19:39
Здравствуйте, подскажите пожалуйста, как поставить bmp-картинку на весь UninstallProgressForm?
Или как растянуть на весь UninstallProgressForm WizardModernImage например?

И ещё вопрос: Как сделать, чтобы на UninstallProgressForm отображались удаляемые файлы, а не только StatusLabel?
Автор: T2008
Дата сообщения: 21.04.2016 10:28
Здравствуйте.
Как сделать 2 последовательных окна с выбором компонентов установки.
Например это первое окно

Цитата:
[Components]
Name: radiocommands; Description: Язык озвучки; Types: full compact custom; Flags: fixed;
Name: radiocommands\russianRK; Description: Русскоязычные радио; Flags: exclusive;
Name: radiocommands\englishRK; Description: Англоязычные радио; Flags: exclusive;
Name: modelgamer; Description: Модели игроков; Types: full compact custom; Flags: fixed;
Name: modelgamer\modelS; Description: Оригинальные модели; Flags: exclusive;
Name: modelgamer\modelZ; Description: Красочные модели; Flags: exclusive;


Потом нажимаем "ДАЛЕЕ" и должно выпасть ещё одно окно с выбором других компонентов установки.
Дайте пример как это делается??
Автор: ManshetRU
Дата сообщения: 23.04.2016 09:58
Здравствуйте.
У меня вот такой вопрос. Напишу для примера:
"Создать ярлык"
Как добавить ключ тихой установки, чтобы устанавливалось с ярлыком и без. Например:
/VERYSILENT /ICON --> с ярлыком
/VERYSILENT /NOICON --> без ярлыка.

Или так:
Два RadioButton
1. Установка
2. Распаковка
Как сделать ключ тихой установки для каждого из них?
Например.
/VERYSILENT /FULL --> Происходила Установка
/VERYSILENT /PORTABLE --> Происходила Распаковка

Спасибо заранее.
Автор: sjwrec
Дата сообщения: 24.04.2016 18:08
ManshetRU ключ можно получить через ParamStr в секции Code

А дальше уже проверяйте какой ключ введён и делайте соответствующие действия.
Прочитайте про ParamStr в справке. По идеи хватит ключа /PORTABLE , full и не нужен . Verysilent поддерживается самим Inno
Автор: ManshetRU
Дата сообщения: 24.04.2016 21:15
sjwrec
Там написано function ParamStr(Index: Integer): String;
А какое название ключа?

Обычно стоит так:
Portable.Checked:=false;
Installer.Checked:=true;

При использовании ключа /PORTABLE, чтобы стало так:
Portable.Checked:=true;
Installer.Checked:=false;

Как мне это реализовать?
Автор: Ruff
Дата сообщения: 27.04.2016 12:15
Как сделать, чтобы при клике на задачу выполнялось какое-нибудь действие? Например появлялось всплывающее окно. Мой код криво работает. Спасибо!

[more=Код]
[Tasks]
Name: desktopicon1; Description: "Test1"; Flags: unchecked
Name: desktopicon2; Description: "Test2"; Flags: unchecked
Name: desktopicon3; Description: "Test3"; Flags: unchecked
Name: desktopicon4; Description: "Test4"; Flags: unchecked

[Code]
procedure TaskOnClick(Sender: TObject);
begin
if IsTaskSelected('desktopicon4') then
begin
MsgBox('desktopicon4 task has been checked.', mbInformation, MB_OK)
end;
end;

procedure InitializeWizard();
begin
WizardForm.TasksList.OnClick := @TaskOnClick;
end;
[/more]


UPD: Разобрался сам, надо было вместо OnClick указывать OnClickCheck
Автор: sjwrec
Дата сообщения: 28.04.2016 22:42
ManshetRU

Я уже очень давно не работал с Inno но напишу как смогу.

допустим переменная
var
res: String;
// (здесь название процедуры)
begin
res:= ParamStr(2); // 0 - путь к Setup.exe , 1 - первый ключ (например /VERYSILENT) , 2 - ваш ключ (например /PORTABLE)

if res = '/PORTABLE' then begin // проверяем используется ли этот ключ в командной строке.
Portable.Checked:=true;
Installer.Checked:=false;
end
else
begin
Portable.Checked:=false;
Installer.Checked:=true;
end;

end;

фух надеюсь правильно написал.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

Предыдущая тема: Только инсталлятор


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.