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

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

Автор: abasov
Дата сообщения: 01.08.2008 13:54
Genri



Цитата:
-- а что понимается под "доступностью сети"


ping, в идеале первичного шлюза, но...


Genri
Немного не то, достаточно обычного теста, все равно Огромное спасибо, это очень кстати
Автор: Chanka
Дата сообщения: 01.08.2008 14:22
ExpeditorR,

Как я уже говорил в личное беседе "Спасибо" не мне, а уважаемой фирме "1С". Без неё бы ничего не вышло
Автор: Artem_Butenko
Дата сообщения: 01.08.2008 14:42
Chanka быть может Вы видели инсталлятор "Quake 4" от "1C". Здесь слайд-шоу из .jpeg организовано (если я не ошибаюсь) без дополнительных библиотек. Или, м.б. они правили (для достижения данного эффекта) исходники Inno. Анализ бинарного кода (после распаковки данного инсталла) результатов не дал. Так в чем же там дело?
Автор: ExpeditorR
Дата сообщения: 01.08.2008 14:51
Artem_Butenko
Совершенно верно, они перекомпилировали исходники в Delphi , добавив туда таймер и поддержку картинок в формате jpeg, ну и наверняка ещё какие изменения.
P.S.
Извиняюсь, что ответил я
Автор: nOobCrafter
Дата сообщения: 01.08.2008 14:52
Кстати люди, а может кто поделиться ссылкой на какие нить интересные и довольно простые скины, но не типа инсталшилда, (тот пак есть)? А то Корона хоть и хорош, но довольно сложен для добавления своих страниц начинающим юзером(( Или может кто может обьяснить\дать ссылку на урок где непосредственно в корона скине страницы оформляются?
Автор: Artem_Butenko
Дата сообщения: 01.08.2008 14:53
Ребята, м.б., кто встречал плагины для Inno позволяющие распаковывать через инсталлятор архивы .cab (не InstallShield) и .7z (не SFX-7z).

Добавлено:
В тему о перекомпиленном "1С" дистрибутиве Inno Setup v.5.1.xx. Ранее на форуме кто-то его выкладывал. Я его скачал, но ничего особенного там не увидел. М.б. это уловка любителей заработать на файлообменниках? Извиняюсь если кого обидел.

Добавлено:
noObCrafter попробуйте скины с сайта code jock.com. Данная надстройка для Inno включает ISSkin.dll, файл темы и примеры скриптов скинирования (с разным цветовым оформлением). Скинируется здесь каждое окно, а в новой версии библиотеки обещали добавить скинирование чек-боксов. Однако, данная надстройка добавляет к инсталлятору более 1 мб. В то время, как Corona Skin около 300 кб. Виктор Добров как всегда на высоте!!!
Автор: Raf_SE
Дата сообщения: 01.08.2008 16:20
Ктонить может изменить код так чтоб текст сверху инсталлятора (типа "в какую папку установить?", "какие компоненты должны быть установлены?") был скрыт?

[more]

Код:
[Code]
var
PageNameLabel, PageDescriptionLabel: TLabel;


procedure InitializeWizard();
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clWhite;
Font.Style := [fsBold];
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clWhite;
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
Автор: Artem_Butenko
Дата сообщения: 01.08.2008 17:54
Уважаемый Raf_SE этот текст можно "убрать" из секции [Messagеs]. Полный список стандартных сообщений (данной секции) используемых Inno Setup, находится в файлах языковой локализации. Если Вы делаете моноязычный инсталлер, например на русском языке этот метод для Вас подойдет: найдите в файле языковой локализации необходимое Вам сообщение, вставте его в секцию [Messages] скрипта и просто "затрите" текст сообщения после знака "=". Метод варварский, но самый простой и рабочий!
Автор: Genri
Дата сообщения: 01.08.2008 18:00
nOobCrafter -- приношу извинения. В инно действительно есть такая особенность - функция ShouldSkipPage вызывается по два раза на страницу. Это не твой баг. Подробнее чуть позже в почту.
Автор: Artem_Butenko
Дата сообщения: 01.08.2008 18:03
Raf_SЕ. Пардон, забыл сказать, что файл языковой локализации можно просмотреть в любом текстовом редакторе. Можно ли поинтересоваться о целевом назначении данного скрипта?
Автор: Sampron
Дата сообщения: 01.08.2008 18:16
Artem_Butenko

Цитата:
Однако, данная надстройка добавляет к инсталлятору более 1 мб.

Если из файла-скина удалить все темы оставив только одну, и удалить ненужные текстуры то данная надстройка добавляет к инсталлятору до 200кб.
Автор: SotM
Дата сообщения: 01.08.2008 19:03
Artem_Butenko

Цитата:
Ребята, м.б., кто встречал плагины для Inno позволяющие распаковывать через инсталлятор архивы .cab (не InstallShield) и .7z (не SFX-7z).

А зачем тебе распаковщик то? Опиши подробней задачу и быть может решение твоей задачи будет совершенно другим, чем ты думал.
Автор: Artem_Butenko
Дата сообщения: 01.08.2008 21:52
Уважаемый SotM, далеко не секрет, что многие файлы сжимаются архиватором "7-Zip" лучше чем стандартным упаковщиком Inno Setup. Разумеется можно создать в "7-Zip" самораспаковывающийся архив и выполнить его извлечение с необходимыми параметрами в инсталляторе. Но хотелось бы реализовать распаковку непосредственно архива ".7z", как это можно сделать с архивом ".rar" плагином "UnRAR"!
Автор: Unc1e
Дата сообщения: 01.08.2008 23:46
Artem_Butenko, [more=пробуй]
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
VersionInfoVersion=1.0.2.3
OutputDir=.

[no][Code][/no]
procedure CurStepChanged(CurStep: TSetupStep);
var
res:Integer;
app, arc, dest:string;
begin
If CurStep=ssPostInstall
then
begin
app:=ExpandConstant('{src}')+'\7za.exe';
arc:=ExpandConstant('{src}')+'\ARC.7z';
dest:=ExpandConstant('{app}');
Exec(app, 'x "'+ arc + '" -y -o"'+ dest + '"', '', SW_SHOWNORMAL, ewWaitUntilTerminated, res);
end;
end;[/more] 7za.exe можно скачать тут
Автор: KurtWagner
Дата сообщения: 02.08.2008 00:26
SotM СПАСИБО!!! ИСПРАВЛЕННО!!!!
Помогите плиз!!! У меня 4-ри вопроса как при деинстализации высвечивать список удаляемых файлов 1? = http://kurtwagner.wen.ru/Kak.jpg 2?= как поменять цвет сдесь http://kurtwagner.wen.ru/Kak2.jpg и последний вопрос 3?= http://kurtwagner.wen.ru/Kak3.jpg как заставить не высвечивать ощибку сходства а просто пропустить!!! ... + еще 1-ин как сделать чтоб было как и в Inno Setup Quickstartpack 5.2.2 пример...
вообщем как сделать такую загрузку с иНЕТа... заранее спасибо!!! http://kurtwagner.wen.ru/Kak4.jpg
ЗАРАНЕЕ СПАСИБО

Добавлено:
SotM СПАСИБО!!! ИСПРАВЛЕННО!!!! ЕЩЕ РАЗ
Помогите плиз!!! У меня 4-ри вопроса как при деинстализации высвечивать список удаляемых файлов 1? = http://kurtwagner.wen.ru/Kak.jpg 2?= как поменять цвет сдесь http://kurtwagner.wen.ru/Kak2.JPG и последний вопрос 3?= http://kurtwagner.wen.ru/Kak3.JPG как заставить не высвечивать ощибку сходства а просто пропустить!!! ... + еще 1-ин как сделать чтоб было как и в Inno Setup Quickstartpack 5.2.2 пример...
вообщем как сделать такую загрузку с иНЕТа... заранее спасибо!!! http://kurtwagner.wen.ru/Kak4.jpg
ЗАРАНЕЕ СПАСИБО
Автор: Victor_Dobrov
Дата сообщения: 02.08.2008 02:12
Artem_Butenko
Цитата:
Corona Skin (добавляет к инсталлятору) около 300 кб.

Не совсем так. В базовом варианте (без анимации прогрессбара, слайдшоу, медиаплеера и таймера) почти все новые возможности к инсталлятору подключаются, и весит это дополнение чуть более 40 Кб.

Цитата:
Хочу извиниться перед Виктором, просто хотелось поработать с препроцессором на живых примерах.

Да не за что, зачем такие сложности, в обычных вопросах ничего страшного нет

nOobCrafter
Цитата:
Корона хоть и хорош, но довольно сложен для добавления своих страниц начинающим юзером... Где непосредственно в корона скине страницы оформляются?

В InitializeSkin. Чтобы добавить страницу, сделанную в Inno Setup Form Designer, впиши код в InitializeSkin и задай всем элементам .Parent:= WizardForm. Затем в CurPageChanged нужно выполнить .Hide для всех компонентов, а если CurPageID = Ваша страница.ID:, то выполнить для всех компонентов .Show. В Vista Lite Skin от Sampron тоже используется этот способ.

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

Многим пользователям такие действия покажутся сложными, им проще скачать уже готовую библиотеку с текстурами.
Автор: boss911
Дата сообщения: 02.08.2008 04:13
Ребята, помогите кодом, плиз, который бы перед деинсталляцией проверял, запущен ли конкретный процесс (process.exe), если он запущен, то деинсталлятор его прибивает и ждет его полной остановки, потом только выполняются необходимые действия деинсталлятора.

TASKKILL.EXE не предлагать, я и так им пользуюсь, но бывают такие случаи, что он убивает процесс и в тот же момент закрывается, тем временем, деинсталлятор не все удаляет, хотя по окончании деинсталляции запущенного процесса нет.
Автор: Artem_Butenko
Дата сообщения: 02.08.2008 05:38
Unc1e. Спасибо за помощь, для .cab, вероятно, код будет схожий и придется использовать распаковщик от Microsoft. Подскажите, как правильно увязать код для многодискового архива, если используется 2 и более .7z архивов, так, чтобы инсталлятор стандартным образом требовал следующий диск? И не совсем в тему, можно ли каждой странице назначить свой уникальный текст заголовка окна (по умолчанию используется стандартная мессага "Установка - .....")?
Автор: GRom V
Дата сообщения: 02.08.2008 05:56
Подскажите Плизз...- мне после инсталляции необходимо удалить ветку реестра [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-21-282464564-3822681427-9964723-1000\test
Но параметр \S-1-5-21-282464564-3822681427-9964723-1000\ может быть какой угодно. Как можно удалить этот \test ???

Добавлено:
Вопрос 2...Можно ли выполнить остановку/запуск служб средствами Inno например net stop uxsms .... net start uxsms
Автор: Raf_SE
Дата сообщения: 02.08.2008 10:07
Ктонить может написать скрипт который бы в конце установки проверял наличие файлов {sys}\mscomctl.ocx и {sys}\vb40032.dll, и если он их не нашёл, то запускал (желательно из параметра Run)
"Filename: "{app}\Vbr4\setup.exe"; WorkingDir: "{app}\Vbr4"; Parameters: "/q"; StatusMsg: "Установка Visual Basic 4.0..."; Components: RuText; Flags: waituntilterminated"
Автор: serg_aka_lain
Дата сообщения: 02.08.2008 15:09
boss911
Попробуй так [more]

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
ErrorCode: Integer;
begin
if CurUninstallStep = usUninstall then
begin
Exec('taskkill', '/f /im notepad.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
end;
end;

[/more] (пример закрытия блокнота (notepad.exe)).

Добавлено:
Raf_SE

вариант [more]

procedure CurStepChanged(CurStep: TSetupStep);
var
ErrorCode: Integer;
begin
if CurStep = ssPostInstall then
begin
if (FileSearch('mscomctl.ocx', ExpandConstant('{sys}')) = '')
or (FileSearch('vb40032.dll', ExpandConstant('{sys}')) = '') then
begin
WizardForm.StatusLabel.Caption := 'Установка Visual Basic 4.0...';
if not Exec(ExpandConstant('{app}') + '\Vbr4\setup.exe', '/q', '', SW_Hide, ewWaitUntilTerminated , ErrorCode) then
begin
WizardForm.Visible := False;
SuppressibleMsgBox('Ошибка запуска установки Visual Basic 4.0', MbCriticalError , MB_OK, MB_Ok);
WizardForm.Visible := True;
end;
end;
end;
end;

[/more]

Автор: boss911
Дата сообщения: 02.08.2008 16:17
serg_aka_lain

Цитата:
Попробуй так

Дык, это же опять через TASKKILL, практически тоже самое, что у меня сейчас:

Код: [UninstallRun]
Filename: TASKKILL.EXE; Parameters: /F /im process.exe; Flags: waituntilterminated runhidden
Автор: Diawer
Дата сообщения: 02.08.2008 16:26
Genri

Цитата:
замени if CurPage = Page.ID then... на if CurPage = wpFinished then...
, спасибо за совет,
был ещё вопрос по этому [more=Коду] [Setup]
AppName=My Program
AppVerName=My Program v.1.2
DirExistsWarning=no
DefaultDirName={pf}\My Program

[Tasks]
Name: askini; Description: Указать расположение файла регистрации; GroupDescription: Регистрация программы:

[Code]
var
Page: TInputFileWizardPage;

procedure InitializeWizard();
begin
Page := CreateInputFilePage(wpSelectTasks,
'Регистрация игры', 'Указать расположение файла регистрации игры?',
'Выберите расположение файла регистрации игры, после этого' #13 'нажмите «Далее»:');
Page.Add('Выбор файла регистрации...', 'Legend.exe|Legend.exe', 'Legend.exe');
end;

function NextButtonClick(CurPage: Integer): Boolean;
begin
Result:= True;
if CurPage = Page.ID then
begin
if FileExists(Page.Values[0]) then
begin
ForceDirectories('C:\123\');
Result:= FileCopy(Page.Values[0], 'C:\123\'+ ExtractFileName(Page.Values[0]), False);
end
else Result:= False;
end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = Page.ID) and Not IsTaskSelected('askini') then
Result:= True;
end; [/more] там копирование происходит в папу C:\123\ если я заменяю на {app}, то это не работает, а {app} дописываеться к имени файла.
Пожалуйста помогите с этим разобраться.

Автор: Artem_Butenko
Дата сообщения: 02.08.2008 17:39
Я все с тем же вопросом из предыдущего поста, как привязать ко кнопке "Обзор" (на странице выбора директории установки и программной группы) озвучку клика в .wav формате? Буду признателен за помощь!
Автор: KurtWagner
Дата сообщения: 02.08.2008 17:46
SotM СПАСИБО!!! ИСПРАВЛЕННО!!!! ЕЩЕ РАЗ
Помогите плиз!!! У меня 4-ри вопроса как при деинстализации высвечивать список удаляемых файлов 1? = http://kurtwagner.wen.ru/Kak.jpg 2?= как поменять цвет сдесь http://kurtwagner.wen.ru/Kak2.JPG и последний вопрос 3?= http://kurtwagner.wen.ru/Kak3.JPG как заставить не высвечивать ощибку сходства а просто пропустить!!! ... + еще 1-ин как сделать чтоб было как и в Inno Setup Quickstartpack 5.2.2 пример...
вообщем как сделать такую загрузку с иНЕТа... заранее спасибо!!! http://kurtwagner.wen.ru/Kak4.jpg
ЗАРАНЕЕ СПАСИБО
Автор: Artem_Butenko
Дата сообщения: 02.08.2008 18:29
Sampron, пожалуйста перезалейте Ваш "Vista Lite Skin", а то на DataCOD он уже удален. У меня к Вам еще один небольшой вопрос: можно ли назначить рисунку на WizardForm свойство Border, дабы по краям он выглядел "вдавленным" в форму?

Добавлено:
Товарищи, у меня вопрос по поводу размещения своих творений для Inno Setup. Можно ли прикреплять небольшие файлики непосредственно на форуме (и как?), ведь на файлообменниках они долго не "проживут"?
Автор: Raf_SE
Дата сообщения: 02.08.2008 22:33
serg_aka_lain
Спс за скрипт, правда его ещё не успел проверить :)

Ладно, а ктонить может изменить [more=этот код]procedure MyAfterInstall2();
var
ResultCode: Integer;

begin
if IsComponentSelected('Text\rus\Buka') = True then
begin
if ExtractFileName( ExpandConstant( CurrentFileName ) ) = 'W32ART.POD' then
begin
Exec( ExpandConstant('{app}\W32ART_POD_VPatch.exe'), ' "' + ExpandConstant( CurrentFileName ) + ExpandConstant( '" "{app}\W32ART.POD_new"' ), '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
DeleteFile( ExpandConstant( CurrentFileName ) );
end;
end;
end;[/more] так чтобы:
1. Если выбран компонент "Video\Russian" то после расспаковки "d2video.mpq" (посреди инсталляции) запускался бы "d2video.exe" с параметром """{app}\d2video.mpq"" ""{app}\d2video.mpq_new""" и чтоб после выполнения d2video.exe, удалялся "d2video.mpq".
2. Если выбран компонент "Video\Russian" то после расспаковки "d2xvideo.mpq" (посреди инсталляции) запускался бы "d2xvideo.exe" с параметром """{app}\d2xvideo.mpq"" ""{app}\d2xvideo.mpq_new""" и чтоб после выполнения d2xvideo.exe, удалялся "d2xvideo.mpq".
3. Если выбран компонент "Video\Russian\Fargus" или "Video\Russian\RuProgect" то после расспаковки "D2Music.mpq" (посреди инсталляции) запускался бы "D2Music.exe" с параметром """{app}\D2Music.mpq"" ""{app}\D2Music.mpq_new""" и чтоб после выполнения D2Music.exe, удалялся "D2Music.mpq".
+. Очень желательно чтобы на время выполнения EXE'шников, инсталлятор вместо "Распаковка файлов..." (над прогресс баром) писал бы ченить другое, к примеру "Обновление MPQ файлов...", ну или если нельзя изменить "Распаковка файлов..." тогда чтоб инсталлятор какнить по другому (неважно как) уведомлял юзера что он не завис, и занят важным делом.
Автор: Artem_Butenko
Дата сообщения: 03.08.2008 09:12
Ребята, кто ранее работал с ISSI возможно сталкивался с примером скрипта, позволяющим с каждой новой страницей выводить новый фоновый рисунок, подскажите можно ли реализовать этот эффект средствами Inno Setup, если использовать .jpeg рисунки (возможно на основе isxbb.dll)? Другой, менее лирический, вопрос можно ли в Inno использовать gif-анимацию, на основе плагина от NSIS? Пожалуйста помогите, если у кого есть какие-либо наработки.

Добавлено:
Товарищи кто-нибудь в курсе, проект "ISSI" еще "жив" или нет. Просто научный интерес!
Автор: maxdddca123
Дата сообщения: 03.08.2008 11:50
Подскажите кто знает код для определение серийного номера SATA жёстких дисков ? У меня есть для обычных, но с САТА он не работает
Автор: abasov
Дата сообщения: 03.08.2008 13:39
все таки как проверить доступность хоста (ping)? Может пример есть?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


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