Имя пользователя:
Пароль:
 | Правила  

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

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

Аватара для El Sanchez

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

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

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]

Отправлено: 11:48, 10-03-2014

 

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


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

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


vint56, спасибо, надеюсь, что разберусь Хотя пока, на первый взгляд, все очень сложным кажется.

Отправлено: 16:57, 22-08-2014 | #1401



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

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


Аватара для nik1967

Старожил


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

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


killer000,
пробуй
[code];InnoSetupVersion=5.5.1.ee2(u)
[Setup]
AppName=VideoCacheView 2.70 RePack by Killer000
AppVerName=VideoCacheView 2.70
AppVersion=2.70
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\VideoCacheView
DefaultGroupName=VideoCacheView
SetupIconFile={app}\SetupIconFile.ico
UninstallDisplayIcon={app}\SetupIconFile.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
UninstallIconFile={app}\Uninstall-8.ico
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
Uninstallable=not Uninstallable
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

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

[Messages]
FinishedLabelNoIcons=Программа [name] распакована на ваш компьютер.

[Files]
Source: "{tmp}\rus.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\eng.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\ISSkin.dll"; Flags: dontcopy solidbreak
Source: "{tmp}\skin.cjstyles"; Flags: dontcopy solidbreak
Source: "{app}\SetupIconFile.ico"; DestDir: "{app}"; Attribs: hidden; Check: Normalru or Normalen
Source: "{app}\Uninstall-8.ico"; DestDir: "{app}"; Attribs: hidden; Check: Normalru or Normalen

Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Portableru
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Portableen
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableen
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru and not Is64BitInstallMode
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableen and not Is64BitInstallMode
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Normalru
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Normalen
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalen
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru and not Is64BitInstallMode
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalen and not Is64BitInstallMode

[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupru;
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; IconFilename: {app}\Uninstall-8.ico; MinVersion: 0.0,5.0; Check: groupru;
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: desktopru;
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupen;
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; IconFilename: {app}\Uninstall-8.ico; MinVersion: 0.0,5.0; Check: groupen;
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: desktopen;

[Run]
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Normalru; Flags: postinstall skipifsilent nowait
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Normalen; Flags: postinstall skipifsilent nowait
Filename: "{src}\VideoCacheView Portable\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Portableru; Flags: postinstall skipifsilent nowait
Filename: "{src}\VideoCacheView Portable\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Portableen; Flags: postinstall skipifsilent nowait

[UninstallDelete]
Type: filesandordirs; Name: {app};

Код: Выделить весь код
var
	Sender: TObject;
	FlagImage: TBitmapImage;
	ComponentPage: TWizardPage;
	CheckListBox, CheckListBox2: TNewCheckListBox;
	
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
	
function InitializeSetup(): Boolean; 
begin 
  if not FileExists(ExpandConstant('{tmp}\rus.bmp')) then ExtractTemporaryFile('rus.bmp'); 
  if not FileExists(ExpandConstant('{tmp}\eng.bmp')) then ExtractTemporaryFile('eng.bmp');
	if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
  if not FileExists(ExpandConstant('{tmp}\Skin.cjstyles')) then ExtractTemporaryFile('Skin.cjstyles');
		LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), ''); 
		Result := True; 
end;

procedure OnClick1(Sender: TObject);
begin
	if CheckListBox.Checked[1] then
		WizardForm.DirEdit.text:= ExpandConstant('{src}\VideoCacheView Portable')
	else 
		if IsWin64 then 
			WizardForm.DirEdit.text:= ExpandConstant('{pf64}\VideoCacheView')
		else
			WizardForm.DirEdit.text:= ExpandConstant('{pf}\VideoCacheView');
	case WizardForm.CurPageID of
		ComponentPage.ID: 
			if CheckListBox.Checked[1] then begin
				WizardForm.NextButton.Caption:= 'Распаковать';
				WizardForm.Caption:= FmtMessage('Распаковка — %1', [ExpandConstant('{#SetupSetting("AppName")}')]);
			end else begin
        WizardForm.NextButton.Caption:= 'Далее >';
				WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
			end;
	end;
end;

procedure OnClick2(Sender: TObject);
begin
	if CheckListBox2.Checked[1] then
		FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\rus.bmp')) 
	else
		FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\eng.bmp')); 
end;

function Uninstallable: boolean;
begin
	Result:= CheckListBox.Checked[1];
end;

function Portableru: boolean;
begin
	Result:= CheckListBox.Checked[1] and CheckListBox2.Checked[1];
end;

function Portableen: boolean;
begin
	Result:= CheckListBox.Checked[1] and CheckListBox2.Checked[2];
end;

function Normalru: boolean;
begin
	Result:= CheckListBox.Checked[2] and CheckListBox2.Checked[1];
end;

function Normalen: boolean;
begin
	Result:= CheckListBox.Checked[2] and CheckListBox2.Checked[2];
end;

function groupru: boolean;
begin
	Result:= CheckListBox2.Checked[1] and CheckListBox.Checked[4];
end;

function desktopru: boolean;
begin
	Result:= CheckListBox2.Checked[1] and CheckListBox.Checked[3];
end;

function groupen: boolean;
begin
	Result:= CheckListBox2.Checked[2] and CheckListBox.Checked[4];
end;

function desktopen: boolean;
begin
	Result:= CheckListBox2.Checked[2] and CheckListBox.Checked[3];
end;
  
procedure InitializeWizard();
begin
	WizardForm.DiskSpaceLabel.Hide;
	WizardForm.Color:= clBlack;
	ComponentPage:= CreateCustomPage(wpWelcome, 'Выбор типа, компонентов и языка интерфейса', 'Какой тип, компоненты и язык интерфейса должны быть установлены?');
	
	FlagImage:= TBitmapImage.Create(WizardForm);
  with FlagImage do begin
		Parent:= ComponentPage.Surface;
		SetBounds(ScaleX(216),ScaleY(15),ScaleX(220),ScaleY(220));
		BackColor:= clNone;
		ReplaceColor:= $ffffff;
		ReplaceWithColor:= clNone;
  end;

	CheckListBox:= TNewCheckListBox.Create(WizardForm);
	with CheckListBox do begin
		Top:= ScaleY(0);
		Width:= ComponentPage.SurfaceWidth div 2;
		Height:= ComponentPage.SurfaceHeight div 2;
		Parent:= ComponentPage.Surface;
		BorderStyle:= bsNone;
		ParentColor:= True;
		ShowLines:= false;
		MinItemHeight:= WizardForm.TasksList.MinItemHeight;
		WantTabs:= True;
		OnClickCheck:= @OnClick1;
		AddGroup('Типы и компоненты:', '', 0, nil);
		AddRadioButton('Распаковка портативной версии', '', 0, False, True, nil);
		AddRadioButton('Установка обычной версии', '', 0, True, True, nil);
		AddCheckBox('Ярлык(и) на «Рабочем столе»', '', 1, True, True, False, True, nil);
		AddCheckBox('Ярлыки в меню «Пуск»', '', 1, True, True, False, True, nil);
	end;
	
	CheckListBox2:= TNewCheckListBox.Create(WizardForm);
	with CheckListBox2 do begin
		Top:= CheckListBox.Top+CheckListBox.Height;
		Width:= ComponentPage.SurfaceWidth div 2;
		Height:= ComponentPage.SurfaceHeight div 2;
		Parent:= ComponentPage.Surface;
		BorderStyle:= bsNone;
		ParentColor:= True;
		ShowLines:= false;
		MinItemHeight:= WizardForm.TasksList.MinItemHeight;
		WantTabs:= True;
		OnClickCheck:= @OnClick2;
		AddGroup('Язык интерфейса:', '', 0, nil);
		AddRadioButton('Русский язык интерфейса', '', 0, True, True, nil);
		AddRadioButton('Английский язык интерфейса', '', 0, False, True, nil);
	end;
		OnClick1(Sender);
		OnClick2(Sender);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
	case CurPageID of
    wpSelectDir: WizardForm.NextButton.Caption:= 'Установить';
	end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  case PageID of
		wpSelectDir: Result:= CheckListBox.Checked[1];
  end;
end;

procedure DeinitializeSetup();
begin
	UnloadSkin;
end;
Замени rus.bmp

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 22-08-2014 в 19:33. Причина: Ещё немного изменил скрипт


Отправлено: 17:03, 22-08-2014 | #1402


Старожил


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

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


Irenis, просто добавь эти строчки только без коментариев
[Setup] куда добавить в секцию setup
Compression=lzma/ultra метод сжатия
SolidCompression=yes солидное сжатие
DiskSpanning=yes разделить на диски
SlicesPerDisk=3 на 3 штуки
DiskSliceSize=1566000000 размер файла имеет ограничения 2,100,000,000 байт
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:04, 22-08-2014 | #1403


Аватара для nik1967

Старожил


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

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


killer000, немного изменил скрипт в сообщении выше. С предыдущим вариантом не запускалось, если распаковать портативную версию.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 17:24, 22-08-2014 | #1404


SHVtYW4=


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

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


Вложения
Тип файла: zip Console_Pack.zip
(623 байт, 18 просмотров)

Цитата Irenis:
Просто вариант делить файлы вручную тоже не совсем подходит. »
Это самый тот вариант. Меньше проблем.

Автоматизируйте.
Ниже прикрепил пример.
Расформируйте по папкам файлы и запустите Run.bat.
Готовые архивы с расширением .bin, будут находиться в папке Arc: которая, в процессе упаковки будет создана рядом с файлом Run.bat.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:42, 22-08-2014 | #1405


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


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

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


nik1967,
Как это измянить

Отправлено: 17:46, 22-08-2014 | #1406


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


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

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


nik1967,
распаковка портабле eng, ошибка на win 7 x64, на win xp x32 всё ок

его нет в папке портабле!

Отправлено: 18:11, 22-08-2014 | #1407


Аватара для nik1967

Старожил


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

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


killer000, ещё немного изменил скрипт в сообщении выше.
Чтобы не было рамки вокруг рисунка, используй расширенную версию от рестулз (innoultra). Ну, или используй мою сборку.
На счёт под цвет скина в нижней части - это надо редактировать сам скин.
Цитата killer000:
распаковка портабле eng, ошибка на win 7 x64, на win xp x32 всё ок »
Цитата nik1967:
killer000, немного изменил скрипт в сообщении выше. С предыдущим вариантом не запускалось, если распаковать портативную версию. »

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 22-08-2014 в 18:26.


Отправлено: 18:14, 22-08-2014 | #1408


Аватара для ROMKA-1977

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


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

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


Подскажите!
В коде ISDone v0.6 выставил ширину прогрессбаров - 417 при этом проценты скрыты прогрессбарами и их не видно.
Как наложить проценты поверх прогрессбаров ?

Последний раз редактировалось ROMKA-1977, 22-08-2014 в 20:37.


Отправлено: 18:28, 22-08-2014 | #1409


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


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

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


nik1967,
спасибо тебе огромное, я скопировал скрипт, всё ровно ошибка
скинь ещё разок, если не трудно

Отправлено: 18:30, 22-08-2014 | #1410



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход