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

Компьютерный форум 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

 

Аватара для diman_21Ru

Старожил


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

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


не могу не как добавить в свой скрипт функцию от Цитата innot20: а возможно ли это вывести при выборе папки установки? »Конечно. читать дальше »

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



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

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


Ветеран


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

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


Цитата sergey3695:
на 7 и 8 все норм. а на xp отображается другая иконка. »
А через LoadIcon?
читать дальше »
Код: Выделить весь код
[Code]
#define A = (Defined UNICODE) ? "W" : "A"


function LoadIcon(hInstance: UINT; lpIconName: UINT): HICON; external 'LoadIcon{#A}@user32.dll stdcall';


const
    IDI_APPLICATION = 32512; //Default application icon.
    IDI_ASTERISK    = 32516; //Asterisk icon. Same as IDI_INFORMATION.
    IDI_ERROR       = 32513; //Hand-shaped icon.
    IDI_EXCLAMATION = 32515; //Exclamation point icon. Same as IDI_WARNING.
    IDI_HAND        = 32513; //Hand-shaped icon. Same as IDI_ERROR.
    IDI_INFORMATION = 32516; //Asterisk icon.
    IDI_QUESTION    = 32514; //Question mark icon.
    IDI_SHIELD      = 32518; //Security Shield icon.
    IDI_WARNING     = 32515; //Exclamation point icon.
    IDI_WINLOGO     = 32517; //Default application icon. Windows 2000: Windows logo icon.


procedure InitializeWizard();
begin
    MsgBoxEx(WizardForm.Handle, 'Test', 'Test', MB_OK, LoadIcon(0, IDI_ASTERISK), 0);
end;

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

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

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


Аватара для diman_21Ru

Старожил


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

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


А как тут указать путь чтобы папку видел без разделов т.е это для бекапа папки res_mods Source: C:\Windows\Fonts\*; DestDir: {app}\res-mods; Flags: external overwritereadonly ignoreversion;

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


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


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


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

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


saurn, все норм спасибо. Я не знал как LoadIcon использовать в inno, скорее как прописать функцию.

Отправлено: 22:45, 04-02-2014 | #2124


Ветеран


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

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


Цитата diman_21Ru:
C:\Windows\Fonts\*; DestDir: {app}\res-mods; Flags: external overwritereadonly ignoreversion; »
Причем здесь папка шрифтов, я же сказал: это для примера.
Source: путь к папке с устанавливаемыми файлами (здесь указываете местоположение файлов, которые будут устанавливатся)
DestDir: папка, в которую будут установленны файлы
Справку читайте.

Отправлено: 22:53, 04-02-2014 | #2125


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


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

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


Цитата Nordek:
Как сменить цвет текста »
« скрыть
Код:
begin
Parent := WizardForm.SelectDirPage;
SetBounds(ScaleX(0), ScaleY(100 + i*24), ScaleX(400), ScaleY(15));
Color := clRed;
case i of
0: Caption := 'Backup res_mods folder';
Len: Caption := 'Backup xvm folder only';
end;
end; »
Я так и сам делал, но результата никакого. Текст как был чёрным так и остается.

Отправлено: 02:37, 05-02-2014 | #2126


Ветеран


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

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


Цитата PerfectLove:
Я так и сам делал, но результата никакого. Текст как был чёрным так и остается. »
читать дальше »
Код: Выделить весь код
[code]
#define A = (Defined UNICODE) ? "W" : "A"


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


var
    arrayChk: array of TCheckBox;
    arrayLbl: array of TLabel;


function ChkChecked(const Index: Integer): Boolean;
var
    Len: Integer;
begin
    Len := GetArrayLength(arrayChk) - 1;

    if Index > Len then Exit;
    Result := arrayChk[Index].Checked;
end;


procedure CreateBackup();
var
    FindDir: TFindRec;
    i, Len: Integer;
    Dir: array of string;
    MyDir, BackDir: string;
begin
    Len := GetArrayLength(arrayChk) - 1;
    if (ChkChecked(0) and ChkChecked(Len)) then Exit; //Если выбраны оба чекбокса резервная копия создана не будет
    if ChkChecked(0) then Dir := ['*']; //Резервное копирование папки
    if ChkChecked(Len) then Dir := ['xvm']; //Резервное копирование определенных файлов
    MyDir:=ExpandConstant('{app}\res_mods'+'\');
    BackDir:=ExpandConstant('{app}'+'\Backup\');
    for i:=0 to GetArrayLength(Dir)-1 do
    begin
        if FindFirst(MyDir + Dir[i], FindDir) then
        begin
        if FindFirst(MyDir+Dir[i], FindDir) then begin
          repeat
            if not DirExists(BackDir) then begin
              CreateDir(BackDir);
            end;
            MoveDir(MyDir+FindDir.Name, BackDir+FindDir.Name);
          until not FindNext(FindDir);
          FindClose(FindDir);
        end;
      end;
    end;
  end;


procedure CreateCustomControls();
var
    i, Len: Integer;
begin
    SetArrayLength(arrayChk, 2);
    Len := GetArrayLength(arrayChk) - 1;

    for i := 0 to Len do
    begin
        arrayChk[i] := TCheckBox.Create(nil);
        with arrayChk[i] do
        begin
            Parent := WizardForm.SelectDirPage;
            SetBounds(ScaleX(0), ScaleY(100 + i*24), ScaleX(15), ScaleY(15));
        end;
    end;
    
    SetArrayLength(arrayLbl, 2);
    Len := GetArrayLength(arrayLbl) - 1;

    for i := 0 to Len do
    begin
        arrayLbl[i] := TLabel.Create(nil);
        with arrayLbl[i] do
        begin
            Parent := WizardForm.SelectDirPage;
            SetBounds(ScaleX(18), ScaleY(101 + i*24), ScaleX(WizardForm.DirEdit.Width), ScaleY(15));
            Font.Color := $008000;
            case i of
                0: Caption := 'Backup res_mods folder';
                Len: Caption := 'Backup xvm folder only';
            end;
        end;
    end;
end;


procedure InitializeWizard();
begin
    CreateCustomControls();
end;


procedure CurStepChanged(CurStep: TSetupStep);
var
    Len: Integer;
begin
    Len := GetArrayLength(arrayChk) - 1;

    case CurStep of
        ssInstall: if (ChkChecked(0) or ChkChecked(Len)) then CreateBackup();
    end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:07, 05-02-2014 | #2127


SHVtYW4=


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

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


Цитата PerfectLove:
Я так и сам делал, но результата никакого. »
Ну так и у меня твой скрипт не сработал - вообще ничего невидно.
Нужно вставлять корректный скрипт - который после компиляции на выходе будет работать.
Уметь правильно работать с тегом [code].
Помочь - это одно дело, а переделывать и что-то там искать - это другое - чувствуешь разницу?
Перед тем как выложить, нужно предварительно проверить на работоспособность - без этого никак.
Если вам вопрошающим лень рабочий вариант предоставить, то какого тем кто вам помогает?

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

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


Отправлено: 04:00, 05-02-2014 | #2128


Аватара для diman_21Ru

Старожил


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

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


Всем привет помогите пожалуйста с одним вопросом не как не могу сделать backup папки res-mods и вывести галочку в компоненты ниже в скрине указал , зарание спасибо

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


Отправлено: 11:21, 05-02-2014 | #2129


Аватара для Ivan_009

Ветеран


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

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


Как прописать только сколько Требуется места для установки и Занимаемое место после установки.
Зарание спасибо... (Если можно дайте пожалуйста пример)

Последний раз редактировалось Ivan_009, 05-02-2014 в 15:39.


Отправлено: 14:33, 05-02-2014 | #2130



Компьютерный форум 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




 
Переход