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

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

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

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


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Аватара для Johny777

Ветеран


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

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


Пацаны скажите пожалуйста
1. правильно ли портировал отсюда http://www.swissdelphicenter.ch/torr...code.php?id=55 нижний Delay (задержку)
2. действительно ли он хорош (работает уж точно, но вот реализация... В общем хотелось бы чтоб кто-нибудь знающий глянул)
читать дальше »
Код: Выделить весь код
[Setup]
AppName=DisksInfo
VersionInfoVersion=5.0
AppVerName=DisksInfo
DefaultDirName={pf}\My program


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

const
  QS_KEY                  = $0001;
  QS_MOUSEMOVE            = $0002;
  QS_MOUSEBUTTON          = $0004;
  QS_POSTMESSAGE          = $0008;
  QS_TIMER                = $0010;
  QS_PAINT                = $0020;
  QS_SENDMESSAGE          = $0040;
  QS_HOTKEY               = $0080;
  QS_MOUSE = (QS_MOUSEMOVE or QS_MOUSEBUTTON);
  QS_INPUT = (QS_MOUSE or QS_KEY);
  QS_ALLEVENTS = (QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY);
  QS_ALLINPUT = (QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY or QS_SENDMESSAGE);
  STATUS_TIMEOUT          = $00000102;
  WAIT_TIMEOUT = STATUS_TIMEOUT;

function MsgWaitForMultipleObjects(nCount: DWORD; var pHandles: THandle; fWaitAll: BOOL; dwMilliseconds, dwWakeMask: DWORD): DWORD; external 'MsgWaitForMultipleObjects@user32.dll stdcall';
function CreateEvent(lpEventAttributes: Longint; bManualReset, bInitialState: BOOL; lpName: PChar): THandle; external 'CreateEvent{#A}@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall';
function GetTickCount: DWORD; external 'GetTickCount@kernel32.dll stdcall';

procedure Delay(Milliseconds: Integer); 
var
  dwTick: DWORD;
  hEvent: THandle;
begin
  hEvent := CreateEvent(0, False, False, '');
  try
    dwTick := GetTickCount + DWORD(Milliseconds);
    while (Milliseconds > 0) and (MsgWaitForMultipleObjects(1, hEvent, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
    begin
      Application.ProcessMessages;
      Milliseconds := dwTick - GetTickCount;
    end;
  finally
    CloseHandle(hEvent);
  end;
end;

procedure InitializeWizard;
begin
  Delay(2000);
end;

наперёд скажу, что обычный Sleep() не подходит, тк мне нужно задержать исчезновение формы на пару секунд, а с ним на ней всё замирает. Решение - код выше
===============================================================================
alert30,
Цитата alert30:
заголовок окна и отображает в панели задач »
заголовок окна и имя кнопки в панели задач не взаимосвязаны , меняются отдельно друг от друга 3-мя способами:
читать дальше »

1. путём изменения стандартных констант сообщений
Код: Выделить весь код
[messages]
SetupAppTitle=имя кнопки
SetupWindowTitle=заголовок окна
2. через методы объектов
Код: Выделить весь код
procedure InitializeWizard();
begin
  WizardForm.Caption := 'Заголовок окна';
  Application.Title := 'Имя кнопки';
end;
3. через функцию винды SetWindowText
Код: Выделить весь код
#ifdef UNICODE
    #define A "W"
#else
    #define A "A"
#endif

function SetWindowText(hWnd: HWND; lpString: String): BOOL; external 'SetWindowText{#A}@user32.dll stdcall';

procedure InitializeWizard();
begin
  SetWindowText(WizardForm.Handle, 'Заголовок окна');
  SetWindowText(Application.Handle, 'Имя кнопки');
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:50, 01-01-2013 | #1471



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

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


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


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

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


Не, речь идёт об ISDone
Код: Выделить весь код
function ISDoneInit(RecordFileName:string; TimeType, Comp1,Comp2,Comp3:Cardinal; WinHandle, NeededMem:longint; callback:TCallback):boolean;
...
if ISDoneInit(ExpandConstant('{src}\records.inf'),$F777,Comps1,Comps2,Comps3,MainForm.Handle,{#NeedMem},@ProgressCallback) then begin
Разгадка скорее всего в этих строчках, а именно в "WinHandle" и "MainForm.Handle", но если их удалить, то вылезет ошибка "Не хватает оперативной памяти"

Отправлено: 22:52, 01-01-2013 | #1472


Аватара для Mailchik

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


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

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


Nightwishh, замените MainForm.Handle на WizardForm.Handle.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:05, 02-01-2013 | #1473


Старожил


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

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


Здравствуйте. Как в инсталляторе сделать проверку целостности игровых архивов перед началом установки?

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 06:11, 02-01-2013 | #1474


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


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

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


Как делают Механики? Они же запаковывают фриарком, файлы извлекаются в {app}, а потом эти архивы удаляются, а остаются извлечённые файлы. Как мне так сделать?

Отправлено: 07:50, 02-01-2013 | #1475


Аватара для alert30

Ветеран


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

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


Nikish X, по поводу распакования FreeArc-ом делается ISDone, почитай несколько страниц, там есть.

А Вот по поводу удаления архива ARC-а, после распакования FreeArc-ом в инсталляторе, читаем, начиная с 478 поста.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:16, 02-01-2013 | #1476


Аватара для nik1967

Старожил


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

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


Цитата LinkOFF:
Здравствуйте. Как в инсталляторе сделать проверку целостности игровых архивов перед началом установки? »
ISMD5 - библиотека для вычисления и сравнения хеш-суммы MD5 файлов с выводом прогресса.

Цитата Nikish X:
Они же запаковывают фриарком, файлы извлекаются в {app}, а потом эти архивы удаляются, а остаются извлечённые файлы. »
Брр... К чему эти извращения? Для чего копировать архивы в папку назначения и затем удалять их после извлечения? Нужно гораздо больше места для установки, да и время установки увеличивается. Лучше и быстрее извлекать архивы из {src} в {app}.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 02-01-2013 в 12:04.

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

Отправлено: 11:54, 02-01-2013 | #1477


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


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

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


Цитата nik1967:
Брр... К чему эти извращения? Для чего копировать архивы в папку назначения и затем удалять их после извлечения? Нужно гораздо больше места для установки, да и время установки увеличивается. Лучше и быстрее извлекать архивы из {src} в {app}. »
Я хочу запаковать игру в архивы, а потом архивы в архивы. Думаю так сильнее сжатие будет.

Отправлено: 13:22, 02-01-2013 | #1478


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


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

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


Я понял, что тупо паковать архивы в архивы, за это спасибо alert30 и nik1967. Теперь меня интересует как precomp'om всю папку сжать?

Отправлено: 13:56, 02-01-2013 | #1479


Аватара для nik1967

Старожил


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

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


Nikish X, например, почитать здесь Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".

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

Отправлено: 14:07, 02-01-2013 | #1480



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход