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

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

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

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

Ветеран


Contributor


Сообщения: 1273
Благодарности: 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

 

Ветеран


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

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


как убрать кнопку отмены isdone чтобы осталась дефольтная?

Отправлено: 20:56, 14-02-2013 | #1641



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

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


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


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

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


Подскажите, как в скрипте от Johny777 (рандомный показ слайдов), сделать последовательный показ слайдов, чтобы Image_2.bmp был строго после Image_1.bmp и т.д.
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Files]
Source: Image_1.bmp; Flags: dontcopy solidbreak sortfilesbyextension nocompression
Source: Image_2.bmp; Flags: dontcopy solidbreak sortfilesbyextension nocompression
Source: Image_3.bmp; Flags: dontcopy solidbreak sortfilesbyextension nocompression

Source: {fonts}\*; DestDir: {app}; Flags: external

[ code]
const
  SlidesNumber=3; //количество слайдов
  SlideRenewTine=2; // задержка показа слаидов в секундах
  
var
  SplashImage: TBitmapImage;
  SlidesTimer: LongWord;
  Pic: Byte;

function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';

procedure ShowRandomPics;
begin
  Pic := Random(SlidesNumber);
  SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_' + IntToStr(Pic+1) + '.bmp'));
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
  z: Byte;
begin
  case CurStep of
    ssInstall:
    begin
      { SplashImage }
      SplashImage := TBitmapImage.Create(nil);
      with SplashImage do
      begin
        SetBounds(ScaleX(0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.Bevel.Top)
        Parent := WizardForm.InstallingPage;
        Stretch := True;
        Pic := Random(SlidesNumber);
        ExtractTemporaryFile('Image_' + IntToStr(Pic+1) + '.bmp');
        Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_' + IntToStr(Pic+1) + '.bmp'));
      end;
      WizardForm.StatusLabel.Caption := 'Распаковка слайдов ...';
      for z := 1 to SlidesNumber do if not FileExists(ExpandConstant('{tmp}\Image_' + IntToStr(z) + '.bmp')) then ExtractTemporaryFile('Image_'+inttostr(z)+'.bmp');
      SlidesTimer := SetTimer(WizardForm.Handle, 7, SlideRenewTine*1000, CallbackAddr('ShowRandomPics'));
    end;
    
    ssPostInstall:
    begin
      KillTimer(WizardForm.Handle, SlidesTimer);
      SplashImage.Free;
    end;
  end;
end;

procedure DeInitializeSetup();
begin
  KillTimer(WizardForm.Handle, SlidesTimer);
end;

Отправлено: 22:38, 14-02-2013 | #1642


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Nightwishh, както так:
Код: Выделить весь код
procedure ShowRandomPics;
begin
  Pic := Pic+1;
  if Pic = SlidesNumber then Pic := 0;
  SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_' + IntToStr(Pic+1) + '.bmp'));
end;

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 22:42, 14-02-2013 | #1643


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

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


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

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


Всем привет! Подскажите, пожалуйста, кто знает или кто сталкивался, на примере этого кода:
читать дальше »
Код: Выделить весь код
function NextButtonClick(CurPage: Integer): Boolean;
var
  sz:Integer;
  s:string;
    begin
  Result:=True;
 If CurPage=6 then
 //Проверка присутствия определенных файлов в папке с установленной программой на странице выбора папки назначения
  begin
 If (FileSearch('Main.exe', ExpandConstant('{app}'))='')
 or (FileSearch('Comp.dll', ExpandConstant('{app}')+'\data')='')
then
  begin
  s:='Извините, в директории '+ExpandConstant('{app}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь для установки обновления.';
  MsgBox(s, mbError, mb_Ok);
  Result:= False
end
else
 //И проверка размера оригинальных файлов
  begin
 If FileSize(ExpandConstant('{app}')+'\Main.exe', sz)
then
  begin
 If sz<>270336 //Проверяемый размер в байтах
then
  begin
  s:='Размер установленого компонента Main.exe не соответствует.' #13#13 'Для установки обновления требуются оригинальные файлы.';  MsgBox(s, mbCriticalError, mb_Ok);
  Result:= False
  end else
  begin
 If FileSize(ExpandConstant('{app}')+'\data\Comp.dll', sz)
then
  begin
 If sz<>3688328
then
  begin
  s:='Размер установленого компонента Comp.dll не соответствует.' #13#13 ' Для установки обновления требуются оригинальные файлы.';  MsgBox(s, mbCriticalError, mb_Ok);
  Result:= False
end;
end;
end;
end;
end;
end;
end;

Возможно ли как-то размер файлов считать с файла INI, а то файлы (по замыслу) должны загружаются через интернет всегда одним установщиком и размер файлов прописывать в установщике (по понятным причинам) бесмысленно.

Отправлено: 19:56, 15-02-2013 | #1644


Аватара для Gnom_aka_Lexander

Ветеран


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

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


функция GetIniInt, возвращает целочисленное значение. записать можно с помощью функции SetIniInt. Как ими воспользоваться - нужно посмотреть в справке, мне сейчас лень чего-то, день тяжелый был.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 20:04, 15-02-2013 | #1645


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

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


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

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


Разобрался...
Вот, может кому пригодится:
IniFile:= 'C:\Program Files\Project\Bin\Version.ini';
if FileExists(IniFile) then begin
GetIniInt('sz', '587452145', 0, 0, 0, IniFile);

Последний раз редактировалось Tco 03, 15-02-2013 в 23:30.

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

Отправлено: 23:13, 15-02-2013 | #1646


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


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

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


Здравствуйте, можно ли изменить цвет стандартных чекбоксов в ComponentsList-е и TasksList-е через скин (почему-то NoIconsCheck меняется, а эти нет), на стиль NoIconsCheck?

Отправлено: 02:17, 16-02-2013 | #1647


Аватара для EvilAlex

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


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

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


Изображения
Тип файла: jpg Снимок.JPG
(13.9 Kb, 29 просмотров)

Доброго времени суток.
Хотел спросить, возможно ли в инно реализовать такую фишку -

Отправлено: 10:27, 16-02-2013 | #1648


Аватара для alert30

Ветеран


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

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


EvilAlex, аналогично где-то спрашивал в 4-ой части.

Отправлено: 11:24, 16-02-2013 | #1649


Ветеран


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

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


Dima-WAR ну в принципе можно,думаю умельцы тебе подскажут

Отправлено: 11:49, 16-02-2013 | #1650



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




 
Переход