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

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

 

Аватара для ZVSRus

Старожил


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

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


saurn, На страницах 128, 129 Вы помогли мне разобраться с кнопкой Сброс.
Если есть время помогите разобраться еще с одной кнопкой Сброс.
Нужно кнопку Сброс прикрутить к программной группе.
Скрипт скинул в личку.

Отправлено: 21:10, 10-02-2016 | #1311



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

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


Аватара для Dodakaedr

Ветеран


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

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


Цитата dracosha:
Ребят не могу найти живой пример, а сам в этом деле не смыслю. Помогите пожалуйста. »
"Живой" пример:
Скрытый текст
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.

[Components]
Name: "arch"; Description: "1.7z\2.7z";

[Files]
Source: "7za.exe"; Flags: dontcopy deleteafterinstall
Source: "1.7z"; DestDir: "{app}\Icons"; AfterInstall: "Extract()"; Components: arch;
Source: "2.7z"; DestDir: "{app}"; AfterInstall: "Extract()"; Components: arch;

[Code]
procedure Extract();
var
rs: integer;
strFile: String;
begin
  strFile := ExpandConstant(CurrentFileName);
  if not FileExists(ExpandConstant('{tmp}\7za.exe')) then ExtractTemporaryFile('7za.exe');
  Exec(ExpandConstant('{tmp}\7za.exe'), ' x '+'"'+strFile+'" -y -o'+'"'+ExtractFilePath(strFile)+'"', '', SW_Hide, ewWaitUntilTerminated, rs);
  DeleteFile(strFile);
end;
Файлы для примера

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

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

Отправлено: 22:53, 10-02-2016 | #1312


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


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

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


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

Как изменить заголовок MessageBox ?
С поддержкой юникода (c переводом строк из ANSI в UNICODE)

Скрытый текст

[code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
FR_PRIVATE = $10;

procedure InitializeWizard();
begin
WizardForm.Caption:= ('Установка {#MyAppName}');
end;

procedure InitializeUninstallProgressForm();
begin
UninstallProgressForm.Caption:= ('Удаление {#MyAppName}');
end;


Последний раз редактировалось Aviromathe, 11-02-2016 в 15:01.


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


Аватара для ZVSRus

Старожил


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

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


Aviromathe,
Цитата:
Как изменить заголовок MessageBox ?
А если так
Скрытый текст

Код: Выделить весь код
[Messages]
UninstallAppFullTitle=Я такой-то удаляю — %1

Отправлено: 21:18, 11-02-2016 | #1314


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


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

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


Всем привет. Возникла такая проблема. Переустановила виндовс. После переустановки заново установила inno setup, качала с оф. сайта, то есть отсюда http://www.jrsoftware.org/isdl.php (это же оф. сайт?). Но как то теперь инно сетап работает не так. Компилирует все нормально, но при установке скомпилированной программы исчезло первое окошко приветствия (то есть там, где говорится "вас приветствует мастер установки программы, вы установите версию такую то.... и т.д.). То есть появляется сразу окошко с выбором места установки. И это не только с вновь созданными скриптами, то же самое происходит, если компилировать те скрипты, которые создавала ранее, до переустановки. Подскажите пожалуйста, в чем может быть проблема? Спасибо.

Отправлено: 12:20, 12-02-2016 | #1315


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


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

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


Цитата Irenis:
Всем привет. Возникла такая проблема. Переустановила виндовс. После переустановки заново установила inno setup, качала с оф. сайта, то есть отсюда http://www.jrsoftware.org/isdl.php (это же оф. сайт?). Но как то теперь инно сетап работает не так. Компилирует все нормально, но при установке скомпилированной программы исчезло первое окошко приветствия (то есть там, где говорится "вас приветствует мастер установки программы, вы установите версию такую то.... и т.д.). То есть появляется сразу окошко с выбором места установки. И это не только с вновь созданными скриптами, то же самое происходит, если компилировать те скрипты, которые создавала ранее, до переустановки. Подскажите пожалуйста, в чем может быть проблема? Спасибо. »
Вот вам окно привествия
Скрытый текст
В последних версиях окно приветствия отключено
Если хотите его включить добавьте эту строку в скрипт

[code]
DisableWelcomePage=no

Оффициальный сайт http://www.jrsoftware.org/

Последний раз редактировалось Aviromathe, 12-02-2016 в 13:42.

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

Отправлено: 13:36, 12-02-2016 | #1316


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


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

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


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

Помогите пожалуйста,отключить кнопку "Отмена" во время установки
Если что смотрите картинку что за кнопка!

Скрытый текст
; 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={{558D0D03-8238-4111-9709-EF358E0F2101}
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

[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_GRAYED = $1;
MF_BYCOMMAND = $0;
SC_CLOSE = $F060;
MF_BYPOSITION = $00000400;
type
HMENU = THandle;

function GetSystemMenu(hWnd: THandle; bRevert: Boolean): THandle; external 'GetSystemMenu@user32.dll stdcall';
function EnableMenuItem(hMenu: UINT; uIDEnableItem, uEnable: UINT): Boolean; external 'EnableMenuItem@user32.dll stdcall';
function DeleteMenu(hMenu: HMENU; uPosition, uFlags: UINT): BOOL; external 'DeleteMenu@user32.dll stdcall';
function GetMenuItemCount(hMenu: HMENU): Integer; external 'GetMenuItemCount@user32.dll stdcall';

procedure CurPageChanged(CurPageID: Integer);
var Menu: THandle;
begin
Menu := GetSystemMenu(WizardForm.Handle, False); EnableMenuItem(Menu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
if (CurPageID = wpSelectDir) or (CurPageID = wpReady) then
WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall)
else if (CurPageID = wpFinished) then
WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish)
else
WizardForm.NextButton.Caption := SetupMessage(msgButtonNext);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:= true;
Confirm:= false;
end;

procedure InitializeWizard;
var
SystemMenu: HMENU;
begin
SystemMenu := GetSystemMenu(WizardForm.Handle, False);
DeleteMenu(SystemMenu, 9999, MF_BYCOMMAND);
DeleteMenu(SystemMenu, GetMenuItemCount(SystemMenu)-1, MF_BYPOSITION);
end;


Последний раз редактировалось Venelana, 13-02-2016 в 14:04.


Отправлено: 13:57, 13-02-2016 | #1317


Аватара для ZVSRus

Старожил


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

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


Цитата Venelana:
Помогите пожалуйста,отключить кнопку "Отмена" во время установки
Как-то так
Код: Выделить весь код
if (CurPageID = wpInstalling) then
  WizardForm.CancelButton.Visible:= False;

Последний раз редактировалось ZVSRus, 13-02-2016 в 17:00.

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

Отправлено: 16:50, 13-02-2016 | #1318


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


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

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


Как можно по другому отменить закрытие при помощи Alt + F4 ?

Скрытый текст
[Setup]
AppName=MyApp
AppverName=MyApp
DefaultDirName={pf}\MyApp
OutputDir=.

[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;

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


Ветеран


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

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


Цитата Venelana:
отключить кнопку "Отмена" во время установки »
Код: Выделить весь код
procedure CurPageChanged( const CurPageID: Integer );
begin
    case CurPageID of
        wpInstalling: WizardForm.CancelButton.Enabled := False;
    end;
end;
Предыдущий пример отключает видимость кнопки.
Думаю, если уж лишать пользователя возможности отменить установку, то следует, также, отключить кнопку закрытия на бордюре окна. Хотя, в таскбаре окно все равно можно будет закрыть.
Код: Выделить весь код
#define A = (Defined UNICODE) ? "W" : "A"


const
    GCL_STYLE = - 26;
    CS_NOCLOSE = $0200;


function SetClassLong( hWnd: HWND; nIndex: Integer; dwNewLong: Longint ): DWORD; external 'SetClassLong{#A}@user32.dll stdcall';
function GetClassLong( hWnd: HWND; nIndex: Integer ): DWORD; external 'GetClassLong{#A}@user32.dll stdcall';


procedure CurPageChanged( const CurPageID: Integer );
begin
    case CurPageID of
        wpInstalling:
        begin 
            WizardForm.CancelButton.Enabled := False;
            SetClassLong( WizardForm.Handle, GCL_STYLE, ( GetClassLong( WizardForm.Handle, GCL_STYLE ) or CS_NOCLOSE ) );
        end;
    end;
end;

Отправлено: 02:18, 14-02-2016 | #1320



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




 
Переход