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

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

 

Аватара для Ivan_009

Ветеран


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

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


Цитата Ivan_009:
Как удалить иконку в левом верхнем углу... »
Собственно не нашел как удалить. Зато можно сменить, чтобы ее невидно совсем было...

Может кому пригодится

Последний раз редактировалось Ivan_009, 26-03-2014 в 23:46.


Отправлено: 22:42, 03-02-2014 | #2101



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

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


Ветеран


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

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


Цитата diman_21Ru:
А можно ли кнопку добавить к сохранением папки модов ? »
Можно кнопку, можно и страницу:
читать дальше »
Код: Выделить весь код
#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
    pageBackup: TInputDirWizardPage;


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;


function CreateBackupPage(const AfterID: Integer): TInputDirWizardPage;
begin
    Result := CreateInputDirPage(AfterID,
              'Резервное копирование',
              'Создание резервных копий перезаписываемых файлов.',
              'Укажите папку, в которую будут помещены резервные копии оригинальных файлов.',
              False, 'Новая папка');
              
    with Result do
    begin
        Add('Папка резервных копий:');
        Values[0] := AddBackslash(WizardDirValue()) + '{#BAK_DIR}';
    end;
end;


procedure InitializeWizard();
begin
   if DirExists(AddBackslash(WizardDirValue()) + '{#CUR_DIR}') then
     pageBackup := CreateBackupPage(6);
end;


procedure CurStepChanged(CurStep: TSetupStep);
begin
    case CurStep of
        ssInstall: if DirExists(ExpandConstant('{app}\{#CUR_DIR}')) then
                     IsBackup(ExpandConstant('{app}\{#CUR_DIR}\'), AddBackslash(pageBackup.Values[0]));
    end;
end;

Отправлено: 22:48, 03-02-2014 | #2102


Аватара для Ivan_009

Ветеран


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

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


Как можно удалить Меню «О программе». Зарание спасибо...

Проще говоря все это меню...

Последний раз редактировалось Ivan_009, 27-03-2014 в 00:01.


Отправлено: 23:54, 03-02-2014 | #2103


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


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

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


Цитата Ivan_009:
Как можно удалить Меню «О программе». Зарание спасибо...
Проще говоря все это меню... »
как вариант можно изменить

http://forum.oszone.net/post-1660375-1363.html
Это сообщение посчитали полезным следующие участники:

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


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


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

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


Как сменить цвет текста Caption?

[code]

// backup
Код: Выделить весь код
#define A = (Defined UNICODE) ? "W" : "A"


function MoveDir(const srcFile, destFile: PAnsiChar): Integer; external 'MoveFileA@kernel32.dll stdcall'; 


var
    arrayChk: array of TCheckBox;


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 CreateChk();
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(400), ScaleY(15));
            Color := clGreen;
            case i of
                0: Caption := 'Backup res_mods folder';
                Len: Caption := 'Backup xvm folder only';
            end;
        end;
    end;
end;


procedure InitializeWizard4();
begin
    CreateChk();
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

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


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

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


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

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


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

Отправлено: 07:23, 04-02-2014 | #2106


Аватара для diman_21Ru

Старожил


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

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


saurn ,резервную папки модов сохраняет а как сюда добавить значек ?

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


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


SHVtYW4=


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

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


Цитата Ivan_009:
удалить Меню «О программе». »
Примерно:
читать дальше »
Код: Выделить весь код
[Code]
function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL; external 'AppendMenuA@user32.dll stdcall';
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall';

const
  MF_DELETE     = $200;

procedure InitializeWizard();
begin
  if not AppendMenu(GetSystemMenu(Wizardform.Handle, True), MF_DELETE, 0, '') then
end;


Цитата PerfectLove:
Как сменить цвет текста »
читать дальше »
Код: Выделить весь код
        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;


Цитата Tco 03:
сообщений: "Вы действительно хотите удалить программу?" и "Программа была полностью удалена с Вашего копьютера." »
читать дальше »
Код: Выделить весь код
[Messages]
UninstallAppFullTitle=Деинсталляция — %1
ConfirmUninstall=Вы действительно хотите удалить %1 и все компоненты программы?
UninstalledAll=Программа %1 была полностью удалена с вашего компьютера.

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

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

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


Аватара для Ivan_009

Ветеран


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

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


Как сменить эту надпись

Последний раз редактировалось Ivan_009, 27-03-2014 в 00:01.


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


Аватара для diman_21Ru

Старожил


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

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


разве не AppName=

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



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




 
Переход