Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 900 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 798 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для Gnom_aka_Lexander

Ветеран


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

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


R.i.m.s.k.y., они тогда не в Setup меняются а так:
Код: Выделить весь код
[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl; LicenseFile: 1.rtf; InfoBeforeFile: Пролог_ru.rtf; InfoAfterFile: Эпилог_ru.rtf
Name: en; MessagesFile: compiler:Languages\English.isl; LicenseFile: 2.rtf; InfoBeforeFile: Пролог_En.rtf; InfoAfterFile: Эпилог_En.rtf

[Files]
Source: 1; DestDir: {app}; Languages: ru;
Source: 2; DestDir: {app}; Languages: en;
[Tasks]
Name: 1; Description: русский; Languages: ru; 
Name: 2; Description: Английский; Languages: en;
а в Setup, тогда, LicenseFile и InfoBeforeFile, я думаю, прописывать не стоит, хотя ошибки быть не должно вроде
А на вторю часть я отвечал уже - язык может применятся как компонент, пример дополнил

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Последний раз редактировалось Gnom_aka_Lexander, 09-03-2011 в 22:18.

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

Отправлено: 21:26, 09-03-2011 | #1041



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

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


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Лександер, спасибо, но это только первая часть вопроса.

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 21:38, 09-03-2011 | #1042


Аватара для Vamp1re

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


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

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


Первый мой скрипт: Dead Space 2 + ISDone 0.5 final
Скрипт довольно простой.Возможность подключать неограниченое количество разных модулей, добавлен всем требуемый черный цвет инсталлятора и другое увидете в скрипте



Скачать можно перейдя по ссылке ниже:
http://rghost.ru/4706574
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:04, 10-03-2011 | #1043


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


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

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


Подарочек от меня) Еще один закос под мехов. Скрипт писался еще прошлым летом, с инно дружить я только начинал, поэтому простите за бардак в скрипте. Правда выложить решил только сейчас. Старался, подгонял все координаты\размеры, поэтому считаю этот скрипт более "полным". Координата текста брались из репака ассассина, окна установки из blur
R.G. Механики + ISDone 4.0 или ISDone 5.0 Final

Последний раз редактировалось duxa, 23-03-2011 в 18:35.

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

Отправлено: 19:19, 10-03-2011 | #1044


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


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

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


Ребята помогите к скрипту

читать дальше »
[Setup]
AppId={{D12015CC-4FEA-40CD-A1D7-289B6D8924A5}
AppName=1
AppVerName=1.0
AppPublisher=1
DefaultDirName=C:\Games\1
DefaultGroupName=1
OutputBaseFilename=setup
Compression=lzma/ultra64
SolidCompression=true
;disablereadypage=true
InternalCompressLevel=ultra64
DiskSpanning=true
PrivilegesRequired=none
WizardImageFile=1.bmp
WizardSmallImageFile=mini.bmp
UninstallDisplayIcon={tmp}\5.ico
AppVersion=
AllowRootDirectory=true
DirExistsWarning=no
AllowNoIcons=true
UninstallFilesDir={app}\Uninstall
VersionInfoProductName=1
AppCopyright=Dragon

[Types]

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

[Messages]
BeveledLabel=111

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: tasks1; Description: Обновить компоненты DirectX; GroupDescription: Дополнительные программы:

[Files]
Source: Office2007.cjstyles; DestDir: {tmp}; Flags: dontcopy nocompression
Source: ISSkin.dll; DestDir: {tmp}; Flags: dontcopy nocompression
source: 1.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: 3.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: isgsg.dll; DestDir: {tmp}; Flags: dontcopy nocompression
Source: splash.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: 5.ico; DestDir: {tmp}

[Icons]


[Run]
Filename: {src}\Redist\directx\dxsetup.exe; WorkingDir: {src}\Redist\directx\; Tasks: Tasks1


[UninstallDelete]
Name: {app}; Type: filesandordirs; Tasks: ; Languages:
[code]
var
AboutButton, CancelButton, URLButton: TButton;
BackgroundBitmapImage: TBitmapImage;
BackgroundBitmapText: TNewStaticText;
BmpFile: TBitmapImage;

procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Office2007.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Office2007.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
UnloadSkin();
end;

procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox('is', mbInformation, mb_Ok);
end;

procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://is.ru#lt', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('1.bmp'); //Извлекаем файл, который пойдет в окно инсталлятора
ExtractTemporaryFile('3.bmp'); //Извлекаем файл, который пойдет в окно инсталлятора
//Вставляем изображение в окно инсталлятора, для каждой страницы нужно добвлять изображение заново
ExtractTemporaryFile('splash.png');
BmpFile:= TBitmapImage.Create(WizardForm);
with BmpFile do begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(313));
Stretch:= true;
Parent:= WizardForm.WelcomePage;
end;

BmpFile:= TBitmapImage.Create(WizardForm);
with BmpFile do begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}\3.bmp'));
SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(313));
Stretch:= true;
Parent:= WizardForm.FinishedPage;
end;

ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);

with WizardForm do
begin
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
FinishedHeadingLabel.Hide;
FinishedLabel.Hide;
end;
begin
with WizardForm.NextButton do
begin
Left := ScaleX(320);
end;

CancelButton := WizardForm.CancelButton;
AboutButton := TButton.Create(WizardForm);
with AboutButton do begin
Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;
Top := CancelButton.Top;
Width := CancelButton.Width;
Height := CancelButton.Height;
Caption := '&Repack info';
OnClick := @AboutButtonOnClick;
Parent := WizardForm;
end;

URLButton := TButton.Create(WizardForm);
with URLButton do begin
Left := AboutButton.Left + AboutButton.Width + ScaleX(50);
Top := CancelButton.Top;
Width := CancelButton.Width;
Height := CancelButton.Height;
Caption := 'Наш Сайт';
OnClick := @URLLabelOnClick;
Parent := WizardForm;
end;
end;
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Left := ScaleX(50);
BackgroundBitmapImage.Top := ScaleY(100);
BackgroundBitmapImage.AutoSize := True;
BackgroundBitmapImage.Bitmap := WizardForm.WizardBitmapImage.Bitmap;
BackgroundBitmapImage.Parent := MainForm;

BackgroundBitmapText := TNewStaticText.Create(MainForm);
BackgroundBitmapText.Left := BackgroundBitmapImage.Left;
BackgroundBitmapText.Top := BackgroundBitmapImage.Top + BackgroundBitmapImage.Height + ScaleY(8);
BackgroundBitmapText.Caption := 'TBitmapImage';
BackgroundBitmapText.Parent := MainForm;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
if CurPageID <> wpWelcome then begin
AboutButton.Hide; URLButton.Hide end else begin
AboutButton.Show; URLButton.Show; end;
end;


Прикрепить
вот это
читать дальше »


[code]
var
TDV: TFolderTreeView;
TFV: TStartMenuFolderTreeView;

procedure TDVOnChange(Sender: TObject);
begin
WizardForm.DirEdit.Text:= AddBackslash(TDV.Directory)+'MyApp';
end;

procedure TFVOnChange(Sender: TObject);
begin
WizardForm.GroupEdit.Text:= AddBackslash(TFV.Directory)+'MyApp';
end;

procedure InitializeWizard();
begin
TDV:= TFolderTreeView.Create(WizardForm);
TDV.Top:= WizardForm.DirEdit.Top+28;
TDV.Width:= 417;
TDV.Height:= 100;
TDV.OnChange:= @TDVOnChange;
TDV.Parent:= WizardForm.SelectDirPage;


TFV:= TStartMenuFolderTreeView.Create(WizardForm);
TFV.Top:= WizardForm.GroupEdit.Top+28;
TFV.Width:= 417;
TFV.Height:= 100;
TFV.SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{us erstartup}'),ExpandConstant('{commonstartup}'));
TFV.OnChange:= @TFVOnChange;
TFV.Parent:= WizardForm.SelectProgramGroupPage;
end;



Чтоб вот так получилось


Последний раз редактировалось my-94, 10-03-2011 в 20:20.


Отправлено: 20:15, 10-03-2011 | #1045


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


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

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


my-94, используй InnoSetup Script Joiner ссылка в закрепке темы :-)

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)

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

Отправлено: 21:06, 10-03-2011 | #1046


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


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

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


actavir

Уу спасибо и не предполагал что такая программа есть

Отправлено: 22:01, 10-03-2011 | #1047


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


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

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


У меня вот такая цель - имеется файл zip и мне надо обновить содержимое внутри него.
Для этого использую 7za.exe с cmd файлом, где прописаны параметры упаковки.
Внутри zip файла лежит папка, в которой лежат те файлы, которые мне надо заменить + ещё одна папка с другими файлами, которые мне трогать не надо.
Также у меня есть 10 файлов с расширением xml, которые собственно говоря мне и надо засунуть в zip файл, в котором лежат точно такие же файлы. Проще говоря это русификатор.
Мне нужно обновить содержимое zip файла, поместив в инсталятор только 10 файлов. Чтобы внутри инсталятора был 7za.exe и cmd файлик и 10 xml файлов.
При запуске чтобы распаковывались все эти файлы в папку где лежит zip файл (путь бы указывался при установке), затем запускался cmd файл, в нём у меня прописано всё необходимое для обновления содержимого zip файла. После того как все действия выполнятся, т.е. обновится содержимое, чтобы все xml файлы и exe + cmd файлы удалились и установка завершилась.

Вопрос вот в чём - какие модули для inno setup нужно использовать чтобы это реализовать и в какой последовательности их использовать?

Отправлено: 22:05, 10-03-2011 | #1048


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


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

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


my-94, если хотите выразить благодарность, то к словам ещё можно приложить нажать "Полезное сообщение"

krevedki, тут можно обойтись стандартными операциями
1. Ваши файлы добавить в инсталятор следующим образом :
Код: Выделить весь код
[Files]Source: unarc.dll; DestDir: {tmp}; Flags: deleteafterinstall
{tmp} заменяете на папку в которой находится zip архив который нужно обновить
unarc.dll замените на имя файла (эти файлы должны быть в папке со скриптом .iss)
2. Проделываете эту операцию со всеми файлами, в том числе и с exe + cmd.
3. В процессе установки можно запустить программу, т.е. после распаковки файлов которые мы добавили в первом пункте, мы можем запустить один из них, я так понял что вам нужно cmd:
Код: Выделить весь код
[RUN]
Filename: {src}\DirectX\DXSETUP.exe; WorkingDir: {src}\DirectX; Parameters: /silent; StatusMsg: Установка DirectX. Пожалуйста подождите...; Tasks: directx; Flags: waituntilterminated;
В этом скрипте измените все имена файлов и пути к ним.
После того, как у вас пройдут все операции, все файлы удалятся.

Я думаю должно получиться.

krevedki, как получится или что-то неполучится отпишись!!!

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Последний раз редактировалось actavir, 10-03-2011 в 22:27.

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

Отправлено: 22:09, 10-03-2011 | #1049


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


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

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


Вот что я имею ввиду - у людей в компах лежит некая папка, где находится zip файл, внтури которого есть 10 xml файлов (внутри xml них различные переменные игры на английском)
У меня есть такие же 10 файлов внутри которых тоже самое на русском. Проще говоря это русификатор. Сам zip файл огромного размера, т.к. внутри не только эти 10 файлов но еще и одна подпапка со звуковыми файлами. Мне нужно чтобы инстралятор брал мои xml файлы и запаковывал их внутрь файла, лежащего в компах людей, кто будет запускать инсталятор, с заменой файлов. Т.е. xml файлы внутри архива заменялись моими с таким же названием. Сама замена происходит через программу 7za.exe а с cmd файле прописаны параметры, в моём случае
7za.exe u -tzip English.pak -ir!Languages\*.xml -mx9
Да, файл с расширением pak это zip архив, но он переименован в pak и используется игрой в таком виде, т.е. только с расширением pak. Но это 100%-ый zip архив.
Так вот - я хочу добавить 10 xml файлов и exe+cmd внутрь исталятора. Инсталятор распакует все эти файлы в папку где лежит English.pak
потом надо как-то запустить cmd файл - он всё упакует и выполнит. После чего zip архив будет обновлён и все xml файлы + exe'шник и cmd файл будут не нужны и их нужно удалить.
Выглядит это так

На картинке zip файл, содержимое которого должен обновить инсталятор и выделены xml файлы, которые я буду обновлять.

exe файл - это консольная версия 7zip
http://rghost.ru/4714817

Последний раз редактировалось krevedki, 10-03-2011 в 22:41.


Отправлено: 22:35, 10-03-2011 | #1050



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход