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

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

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

Аватара для 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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

SHVtYW4=


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

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


Цитата Ivan_009:
Как сменить эту надпись »
На выбор:
Код: Выделить весь код
[Messages]
SetupWindowTitle=Установка — %1
Код: Выделить весь код
[Messages]
SetupWindowTitle=Установка — {#AppName}
Код: Выделить весь код
[Messages]
SetupWindowTitle=%1
Код: Выделить весь код
[Messages]
SetupWindowTitle={#AppName}

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Последний раз редактировалось Nordek, 04-02-2014 в 11:54.

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

Отправлено: 11:47, 04-02-2014 | #2111



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

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


Аватара для Tco 03

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


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

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


Nordek, Ты меня не так понял. Мне нужно через код.
Пример отмены установки:
Код: Выделить весь код
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
 Cancel:=False;
 Confirm:=False;
if MsgBox('Вы действительно хотите отменить установку My_Program?', mbError, MB_YESNO) = idYes
 then
  Cancel:=true;
end;

Нужно точно так же, но только с формами: "Вы действительно хотите удалить программу?" и "Программа была полностью удалена с Вашего копьютера."

Последний раз редактировалось Tco 03, 04-02-2014 в 15:15.


Отправлено: 12:50, 04-02-2014 | #2112


Аватара для diman_21Ru

Старожил


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

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


Подскажите пожалуйста вот есть код резервную папку res_mods сохраняет , но как можно добавить значек вот сюда ?
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.


[Files]
Source: C:\Windows\Fonts\*; DestDir: {app}\res-mods; Flags: external overwritereadonly ignoreversion;


[code]
#define A = (Defined UNICODE) ? "W" : "A"


function MoveFile(const srcFile, destFile: PAnsiChar): Integer; external 'MoveFile{#A}@kernel32.dll stdcall';


procedure IsBackup(const FromDir: String; const ToDir: String);
var
fileArray: array of String;
FindFiles: TFindRec;
i, Len: Integer;
begin
if not DirExists(FromDir) then Exit;
fileArray := ['*'];
Len := GetArrayLength(fileArray) - 1;
for i := 0 to Len do
begin
if FindFirst(FromDir + fileArray[i], FindFiles) then
try
repeat
if not DirExists(ToDir) then CreateDir(ToDir);
MoveFile(FromDir + FindFiles.Name, ToDir + FindFiles.Name);
until not FindNext(FindFiles);
finally

FindClose(FindFiles);
end;
end;
end;


procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall: IsBackup(ExpandConstant('{app}\res-mods\'), ExpandConstant('{app}\Backup\'));
end;
end;

Последний раз редактировалось diman_21Ru, 06-02-2014 в 23:32.


Отправлено: 14:03, 04-02-2014 | #2113


SHVtYW4=


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

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


Цитата diman_21Ru:
добавить значек ? »
читать дальше »
Код: Выделить весь код
[Files]
Source: icon.ico; Flags: dontcopy solidbreak

[Code]
var
  IconImage: TNewIconImage;

procedure InitializeWizard();
begin
  IconImage := TNewIconImage.Create(WizardForm);
  with IconImage do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(0);    // Положение слева
    Top := ScaleY(184);   // Положение сверху
    Width := ScaleX(32);  // Ширина значка
    Height := ScaleY(32); // Высота значка
    ExtractTemporaryFile('icon.ico');
    Icon.LoadFromFile(ExpandConstant('{tmp}\icon.ico'));
  end;
end;


diman_21Ru, Твоя очередь когда нибудь придёт - У тебя два варианта: Либо ждать, либо самому делать - а не плодить сообщения.
Цитата diman_21Ru:
есть код »
Слышал когда нибудь такое "bbcode"?

Захвати свой код в тег [CODE][/CODE] - здесь написано как это делается, и спрячь под спойлер тегом [MORE][/MORE]. Учись - у тебя есть возможность.

Последний раз редактировалось Nordek, 04-02-2014 в 15:17.

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

Отправлено: 15:11, 04-02-2014 | #2114


Аватара для diman_21Ru

Старожил


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

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


Nordek,сори за назойливость крайне срочно нужна кнопка

Отправлено: 15:15, 04-02-2014 | #2115


SHVtYW4=


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

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


diman_21Ru, В коде обрати внимание на Parent := WizardForm.SelectDirPage;
меняешь значения в зависимости от того на какой странице хочешь чтоб отображалось, например:
читать дальше »
Код: Выделить весь код
    Parent := WizardForm.SelectDirPage; // На странице выбора папки установки
Код: Выделить весь код
    Parent := WizardForm.SelectProgramGroupPage; // На странице выбора папки меню пуск
Код: Выделить весь код
Parent := WizardForm.SelectComponentsPage; // На странице компонентов
Код: Выделить весь код
Parent := WizardForm.SelectTasksPage; // На странице задач

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 15:29, 04-02-2014 | #2116


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


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

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


Цитата saurn:
innot20
читать дальше » »
а возможно ли это вывести при выборе папки установки?

Отправлено: 16:43, 04-02-2014 | #2117


Аватара для diman_21Ru

Старожил


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

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


Код на резервные копии папки res_mods не работает вместо этого он добавляет шрифты какие то (
использовал код #2113

Отправлено: 18:24, 04-02-2014 | #2118


Ветеран


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

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


Цитата innot20:
а возможно ли это вывести при выборе папки установки? »
Конечно.
читать дальше »
Код: Выделить весь код
#define CUR_DIR "res-mods"
#define BAK_DIR "old_res-mods"

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.


[Files]
Source: C:\Windows\Fonts\*; DestDir: {app}\res-mods; Flags: external overwritereadonly ignoreversion;


[Code]
#define A = (Defined UNICODE) ? "W" : "A"


function MoveFile(const srcFile, destFile: PAnsiChar): Integer; external 'MoveFile{#A}@kernel32.dll stdcall';


var
    backupChk: TCheckBox;


procedure IsBackup(const FromDir: String; const ToDir: String);
var
    fileArray: array of String;
    FindFiles: TFindRec;
    i, Len: Integer;
begin
    fileArray := ['*'];
    Len := GetArrayLength(fileArray) - 1;
    for i := 0 to Len do
    begin
        if FindFirst(FromDir + fileArray[i], FindFiles) then
        try
            WizardForm.ProgressGauge.Hide;
            WizardForm.StatusLabel.Caption := 'Создание резервной копии файлов...';

            repeat
                if not DirExists(ToDir) then CreateDir(ToDir);
                  MoveFile(FromDir + FindFiles.Name, ToDir + FindFiles.Name);
            until not FindNext(FindFiles);
        finally

            WizardForm.ProgressGauge.Show;
            FindClose(FindFiles);
        end;
    end;
end;


procedure InitializeWizard();
var
    ThereIsFolder: Boolean;
begin
    backupChk := nil;
    ThereIsFolder := DirExists(AddBackslash(WizardDirValue()) + '{#CUR_DIR}');
    
    if ThereIsFolder then
    begin
        backupChk := TCheckBox.Create(nil);
        with backupChk do
        begin
            Parent := WizardForm.SelectDirPage;
            SetBounds(ScaleX(WizardForm.DirEdit.Left), ScaleY(WizardForm.DirEdit.Top + 40), ScaleX(WizardForm.DirEdit.Width), ScaleY(15));
            Caption := 'Сохранить резервную копию перезаписываемых файлов';
            Checked := ThereIsFolder;
        end;
    end;
end;


procedure CurStepChanged(CurStep: TSetupStep);
begin
    case CurStep of
        ssInstall: if backupChk <> nil then
                     if backupChk.Checked then
                       IsBackup(ExpandConstant('{app}\{#CUR_DIR}\'), ExpandConstant('{app}\{#BAK_DIR}\'));
    end;
end;


Цитата diman_21Ru:
Код на резервные копии папки res_mods не работает вместо этого он добавляет шрифты какие то (
использовал код #2113 »
Потому что это пример, и для примера он устанавливает шрифты из системной папки, и при повторной установке делает их резервную копию, только для того, чтобы показать вам, как этот механизм работает. Имена папок, которые нужно бэкапить, указывайте сами.

Цитата diman_21Ru:
добавить значек вот сюда ? »
Под спойлером.

Последний раз редактировалось saurn, 04-02-2014 в 21:02.

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

Отправлено: 20:28, 04-02-2014 | #2119


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


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

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


При использовании

const
ID_ASTERISK = 65583;
...
Icon.Handle := ID_ASTERISK;

на 7 и 8 все норм. а на xp отображается другая иконка. Если даже сделать проверку на систему, то какое значение должна принимать иконка на xp?

Отправлено: 21:12, 04-02-2014 | #2120



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход