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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;
    Предыдущая версия: 5.3.0 [07.04.2009] - Скачать (зеркало) | Русификатор (зеркало);

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • 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.3 [11.09.2009] - Скачать;


Ссылка на архив предыдущей темы (также можно скачать из вложения)

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


Отправлено: 22:06, 23-08-2009

 

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


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

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


Serega если можно,примерный код выложите если не сложно.
И у меня такой вопрос.Имею код для создание бекапа.Но бекапит только то что в корне.А че дописать чтобы и в подпапках бекапил.


[Tasks]
Name: arc; Description: "Сделать резервную копию файлов"

читать дальше »


[code]
var
Page: TInputDirWizardPage;
ArcDir: String;

procedure CreateBackup();
var
SrcFile, DestFile: string;
begin
if IsTaskSelected('arc') then
begin

ForceDirectories(ArcDir);
SrcFile:= AddBackslash(ExpandConstant('{app}')) + ExtractFileName(CurrentFileName);
DestFile:= AddBackslash(ArcDir) + ExtractFileName(CurrentFileName);
FileCopy(SrcFile, DestFile, False);
end;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
If (CurPageID = Page.ID) then
ArcDir := Page.Values[0];
Result:= True;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
If (PageID = Page.ID) and
(Not IsTaskSelected('arc')) then
Result:= True
else Result:= False;
end;

procedure InitializeWizard();
begin
Page:= CreateInputDirPage(wpSelectTasks, 'Выберите папку бэкапа.',
'Куда вы засуните файлы бэкапа.Оттуда вы сможете восстановить свои файлы',
'Для продолжения нажмите далее.' + #10#13#10#13 +
'Если хотите выбрать другую папку щелкните Обзор.',
False, 'Backup');
Page.Add('');
Page.Values[0] := ExpandConstant('{sd}\GTAIV\Backup');

end;


Отправлено: 19:46, 12-12-2009 | #641



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

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


Ветеран


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

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


Цитата Lancer2404:
Имею код для создание бекапа.Но бекапит только то что в корне.А че дописать чтобы и в подпапках бекапил. »
Чтоб не изобретать велосипед, в Справка, руководство, примеры есть Коллекция скриптов, в архиве есть скрипт SHFileOperation.iss, где реализована работа с директориями и файлами.
Просто добавляете в самое начало вашего скрипта #include "путь до скрипта\SHFileOperation.iss" и затем используете функцию из этого скрипта.
Пример
Код: Выделить весь код
#include "здесь укажите путь до скрипта..\SHFileOperation.iss"

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[Tasks]
Name: arc; Description: "Сделать резервную копию файлов"

[Code]
var
  Page: TInputDirWizardPage;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:= (PageID = Page.ID) and not IsTaskSelected('arc');
end;

procedure InitializeWizard();
begin
  Page:= CreateInputDirPage(wpSelectTasks, 'Выберите папку бэкапа.',
        'Куда вы засуните файлы бэкапа.Оттуда вы сможете восстановить свои файлы',
        'Для продолжения нажмите далее.' + #10#13#10#13 +
        'Если хотите выбрать другую папку щелкните Обзор.',
        False, 'Backup');
  Page.Add('');
  Page.Values[0]:= ExpandConstant('{sd}\GTAIV\Backup');
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if (CurStep = ssPreInstall) and IsTaskSelected('arc') then
    CopyDir(ExpandConstant('{app}'), Page.Values[0]);
end;

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


Отправлено: 20:48, 12-12-2009 | #642


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


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

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


Добрый вечер..
Каким цветом нужно подменять кликабельное лого, для чёрного фона..
Во всех примерных скриптах создания сего идёт "фуксия", а какой нужен именно для чёрного..

Отправлено: 20:59, 12-12-2009 | #643


Аватара для YURSHAT

Старожил


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

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


Цитата mosre:
Каким цветом нужно подменять кликабельное лого, для чёрного фона..
Во всех примерных скриптах создания сего идёт "фуксия", а какой нужен именно для чёрного.. »
Да цвет там не важен. Просто рисуете логотип на черном фоне и он сливается с черным цветом инсталла.

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 21:06, 12-12-2009 | #644


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


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

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


Лого на чёрном фоне.. Просто картинка отображается как надо..
Такого чуда неполучается добиться используя вот этот код..

читать дальше »
var
LogoImage:TBitmapImage;
LogoLabel: TLabel;

procedure LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://......', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;

procedure InitializeWizard();
var
LogoPanel : TPanel;
begin
ExtractTemporaryFile('1.bmp');
LogoPanel := TPanel.Create(WizardForm);
with LogoPanel do
begin
Parent := WizardForm;
Left := ScaleX(5);
Top := ScaleY(320);
Width := ScaleX(165);
Height := ScaleY(35);
BevelOuter := bvNone;
end;

LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
Parent := LogoPanel;
Left := ScaleX(0);
Top := ScaleY(0);
AutoSize:=true;
ReplaceColor:=clFuchsia;
ReplaceWithColor:=clBtnFace;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
end;

LogoLabel := TLabel.Create(WizardForm);
with LogoLabel do
begin
Parent := LogoPanel;
Width := LogoPanel.Width;
Height := LogoPanel.Height;
Transparent:=True;
Cursor := crHand;
OnClick:=@LogoOnClick;
end;
end;

Получается только вот что..

Отправлено: 21:14, 12-12-2009 | #645


Аватара для YURSHAT

Старожил


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

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


Цитата mosre:
Такого чуда неполучается добиться используя вот этот код.. »
В коде все правильно. Покажите весь скрипт

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 21:32, 12-12-2009 | #646


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


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

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


Цитата Serega:
Цитата Lancer2404:
Имею код для создание бекапа.Но бекапит только то что в корне.А че дописать чтобы и в подпапках бекапил. »
Чтоб не изобретать велосипед, в Справка, руководство, примеры есть Коллекция скриптов, в архиве есть скрипт SHFileOperation.iss, где реализована работа с директориями и файлами.
Просто добавляете в самое начало вашего скрипта #include "путь до скрипта\SHFileOperation.iss" и затем используете функцию из этого скрипта.
Пример
Код:
#include "здесь укажите путь до скрипта..\SHFileOperation.iss"
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Tasks]
Name: arc; Description: "Сделать резервную копию файлов"
[code]
var
Page: TInputDirWizardPage;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result:= (PageID = Page.ID) and not IsTaskSelected('arc');
end;
procedure InitializeWizard();
begin
Page:= CreateInputDirPage(wpSelectTasks, 'Выберите папку бэкапа.',
'Куда вы засуните файлы бэкапа.Оттуда вы сможете восстановить свои файлы',
'Для продолжения нажмите далее.' + #10#13#10#13 +
'Если хотите выбрать другую папку щелкните Обзор.',
False, 'Backup');
Page.Add('');
Page.Values[0]:= ExpandConstant('{sd}\GTAIV\Backup');
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssPreInstall) and IsTaskSelected('arc') then
CopyDir(ExpandConstant('{app}'), Page.Values[0]);
end;
------- »

А к файлам надо добавлять BEforeinstall:Createbackup.Или что?А то так не действует

Отправлено: 21:32, 12-12-2009 | #647


Ветеран


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

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


Цитата Lancer2404:
А к файлам надо добавлять BEforeinstall:Createbackup.Или что? »
Данный скрипт копирует, перед началом установки всю папку {app}, вместе со всеми файлами и подпапками:
Код: Выделить весь код
  if (CurStep = ssPreInstall) and IsTaskSelected('arc') then
    CopyDir(ExpandConstant('{app}'), Page.Values[0]);
если нужно просто копировать файлы, допустим по маске, то замените CopyDir(ExpandConstant('{app}'), Page.Values[0]);, на
CopyFiles(ExpandConstant('{app}'), Page.Values[0], '*.dll'); - в данном случае будут скопированы все файлы имеющие расширение *.dll

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

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

Отправлено: 22:56, 12-12-2009 | #648


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


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

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


А если мне надо сделать только копии заменяемых файлов?

Отправлено: 23:11, 12-12-2009 | #649


Ветеран


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

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


Цитата Lancer2404:
А если мне надо сделать только копии заменяемых файлов? »
Вы честное слово, как в одном очень известном фильме... А у вас нет точно такого же, но с сиреневыми пуговицами...
Какой вопрос поставили, такой ответ и получили.
Как вы решили автоматически определить заменяемые файлы? Нужен какой-то список файлов в вашем инсталляторе, затем он сверяется с наличием с именами файлов в каталоге и если имена совпадают, то копирует их. Или все имена прописывать в ручную, т.е. if FileExists(FileName) then копируем...

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


Отправлено: 00:16, 13-12-2009 | #650



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход