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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-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]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

Аватара для Dodakaedr

Ветеран


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

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


Цитата Hantunyaha:
Родная кнопка у меня отключена и сделана невидимой »
Зачем? Можно ж просто её изменить
Код: Выделить весь код
#define MyAppName "My Program"
#define MyAppVersion "1.5"

[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}

[Messages]
ExitSetupTitle=«{#MyAppName} v{#MyAppVersion}»
ExitSetupMessage=Вы действительно хотите выйти из программы установки?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 14:11, 16-02-2016 | #1331



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

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


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


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

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


Цитата Dodakaedr:
Зачем? Можно ж просто её изменить »
Вот это код работает как мне нужно!
Что избавиться от этого компонента: AllowCancelDuringInstall нужно сделать свою кнопку отмена

Скрытый текст
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{FC9B3E48-8A0B-49FA-B161-675874D96F13}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
DisableWelcomePage=no
AllowCancelDuringInstall=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon


[code]
const
MF_BYCOMMAND = 0;
MF_ENABLED = 0;
MF_GRAYED = 1;
MF_DISABLED = 2;
SC_CLOSE = 61536;
GCL_STYLE = -26;
CS_NOCLOSE = $200;

function GetSystemMenu(hWnd: HWND; bRevert: BOOL): LongWord; external 'GetSystemMenu@user32.dll stdcall';
function EnableMenuItem(hMenu: THandle; uIDEnableItem: Longword; uEnable: Longword): Boolean; external 'EnableMenuItem@user32.dll stdcall';
function GetClassLong(Wnd: HWnd; Index: Integer): Longint; external 'GetClassLongA@user32.dll stdcall';
function SetClassLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetClassLongA@user32.dll stdcall';

procedure CurPageChanged(CurPageID: Integer);
begin
//if (CurPageID = wpInstalling) then
//begin
EnableMenuItem(GetSystemMenu(WizardForm.Handle, false), SC_CLOSE, MF_DISABLED or MF_BYCOMMAND);
SetClassLong(WizardForm.Handle, GCL_STYLE, GetClassLong(WizardForm.Handle, GCL_STYLE) or CS_NOCLOSE);
//end;
end;



Как сделать кнопку ?

Последний раз редактировалось Hantunyaha, 16-02-2016 в 14:56.


Отправлено: 14:49, 16-02-2016 | #1332


Ветеран


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

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


Цитата Hantunyaha:
Как сделать кнопку ? »
Вот так
Код: Выделить весь код
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{FC9B3E48-8A0B-49FA-B161-675874D96F13}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
DisableWelcomePage=no
//AllowCancelDuringInstall=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Windows\fonts\*"; DestDir: "{app}"; Flags: ignoreversion external;
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon


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


const
    MF_BYCOMMAND = 0;
    MF_ENABLED = 0;
    MF_GRAYED = 1;
    MF_DISABLED = 2;
    SC_CLOSE = 61536;
    GCL_STYLE = -26;
    CS_NOCLOSE = $200;


function GetSystemMenu( hWnd: HWND; bRevert: BOOL ): LongWord; external 'GetSystemMenu@user32.dll stdcall';
function EnableMenuItem( hMenu: THandle; uIDEnableItem: Longword; uEnable: Longword ): Boolean; external 'EnableMenuItem@user32.dll stdcall';
function GetClassLong( Wnd: HWnd; Index: Integer ): Longint; external 'GetClassLong{#A}@user32.dll stdcall';
function SetClassLong( Wnd: HWnd; Index: Integer; NewLong: Longint ): Longint; external 'SetClassLong{#A}@user32.dll stdcall';


var
{ Declared global variables }
    _tBtnCancel: TButton;


procedure _CancelClick ( const Sender: TObject );
begin
    WizardForm.CancelButton.Click;
end;

procedure InitializeWizard();
begin
    EnableMenuItem( GetSystemMenu( WizardForm.Handle, false ), SC_CLOSE, MF_DISABLED or MF_BYCOMMAND );
    SetClassLong( WizardForm.Handle, GCL_STYLE, GetClassLong( WizardForm.Handle, GCL_STYLE ) or CS_NOCLOSE );

    with WizardForm do
    begin
        { Create custom button }
        _tBtnCancel := TButton.Create( nil ); { Init global variable }
        with _tBtnCancel do
        begin
            Parent := WizardForm;
            SetBounds( ScaleX( WizardForm.CancelButton.Left ),
                       ScaleY( WizardForm.CancelButton.Top ),
                       ScaleX( WizardForm.CancelButton.Width ),
                       ScaleY( WizardForm.CancelButton.Height ) );
            Caption := SetupMessage( msgButtonCancel );
            BringToFront;
            OnClick := @_CancelClick;
        end;
    end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
    case CurPageID of
        wpFinished: _tBtnCancel.Hide;
    end;
end;

Только, в чем смысл заменять родную кнопку кастомной с идентичным событием?

Последний раз редактировалось saurn, 17-02-2016 в 07:09.


Отправлено: 22:00, 16-02-2016 | #1333


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


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

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


Изображения
Тип файла: png Снимок экрана (33).png
(42.4 Kb, 9 просмотров)

Ошибка при компиляции

И часть кода перестала работать

Отправлено: 12:24, 17-02-2016 | #1334


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


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

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



Отправлено: 12:24, 17-02-2016 | #1335


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


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

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


Hantunyaha,
Используйте расширенную версию компилятора, и ошибки не будет.

Отправлено: 13:15, 17-02-2016 | #1336


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


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

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


Цитата TryRooM:
Используйте расширенную версию компилятора, и ошибки не будет »
Использую только официальные версии!

Отправлено: 13:27, 17-02-2016 | #1337


Аватара для kotyarko@fb

Старожил


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

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


Hantunyaha, используйте:
Код: Выделить весь код
WizardForm.CancelButton.OnClick(nil);

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp


Отправлено: 13:40, 17-02-2016 | #1338


SHVtYW4=


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

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


Цитата Hantunyaha:
Ошибка при компиляции »
Проверил:
В стандартной версии не работает.
В расширенной версии работает.

Используйте расширенную версию.

Цитата Hantunyaha:
Использую только официальные версии! »
Если вы настроены на расширенную версию категорично - придётся ограничиться малым. Поскольку в одной ситуации решение будет найдено, в другой уже будет проблематично.

Последний раз редактировалось Nordek, 17-02-2016 в 14:20.


Отправлено: 14:10, 17-02-2016 | #1339


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


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

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


Как записать ключ в реестр ?
Нужно записать этот ключ: AAAAA-AAAAA-AAAAA-AAAAA

Отправлено: 17:48, 17-02-2016 | #1340



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты 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




 
Переход