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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;
    Предыдущая версия: 5.3.0 [07.04.2009] - Скачать (зеркало) | Русификатор (зеркало);

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.3 [11.09.2009] - Скачать;


Ссылка на архив предыдущей темы (также можно скачать из вложения)

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 22:06, 23-08-2009

 

Аватара для Habetdin


Автор проектов


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

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


Bond01, скриншот ошибки можно увидеть?

-------


Отправлено: 20:11, 12-09-2009 | #91



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

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


Аватара для Bond01

Ветеран


Автор проектов


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

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


Это всегда пожалуйста

Последний раз редактировалось Bond01, 18-10-2009 в 13:26.


Отправлено: 20:15, 12-09-2009 | #92


Ветеран


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

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


Цитата Berline:
Вопрос может уже звучал: как добавить на страницу выбора компонентов »
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Types]
Name: full; Description: Полная установка
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Components: a
Source: compiler:Examples\Readme-ru.txt; DestDir: {app}; Components: a\a\a
Source: compiler:Examples\Readme-en.txt; DestDir: {app}; Components: a\a\b
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Components: a\b

[Code]
var
  btn1, btn2: TButton;

procedure btnClick(Sender: TObject);
var
  i: Integer;
begin
  // не знаю почему, но при WizardForm.SelectComponentsPage.ControlCount-1 выскакивает сообщение:
  // 'List index out of bounds.'
  for i:= 0 to WizardForm.SelectComponentsPage.ControlCount-2 do
    case TButton(Sender) of
      btn1: WizardForm.ComponentsList.Checked[i]:= True;
      btn2: WizardForm.ComponentsList.Checked[i]:= False;
    end;
end;

procedure InitializeWizard();
begin
  btn1:= TButton.Create(WizardForm);
  with btn1 do
    begin
      SetBounds(260,210,75,25);
      Caption:= 'Выбрать все';
      OnClick:= @btnClick;
      Parent:= WizardForm.SelectComponentsPage;
    end;

  btn2:= TButton.Create(WizardForm);
  with btn2 do
    begin
      SetBounds(340,210,75,25);
      Caption:= 'Снять выбор';
      OnClick:= @btnClick;
      Parent:= WizardForm.SelectComponentsPage;
    end;
end;


Цитата МИШАНЧИК:
подскажите пожалуйста, можно ли как-то сделать в этом(Вашем) скрипте »
Это не мой, я только чего-то в нём исправлял, уже точно не помню что конкретно...

Цитата Bond01:
Показывает на Click OK to stop the service, or Cancel to abort installation.= »
закоментируйте (; ) в скрипте (секция [CustomMessages]) те строчки, на которые ругается компилятор...

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Последний раз редактировалось Serega, 13-09-2009 в 09:32.

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

Отправлено: 20:23, 12-09-2009 | #93


Аватара для Bond01

Ветеран


Автор проектов


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

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


Закоментировал, следующие появились...

Последний раз редактировалось Bond01, 18-10-2009 в 13:26.


Отправлено: 20:32, 12-09-2009 | #94


Ветеран


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

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


Цитата Bond01:
следующие появились... »
Правильно ругается, замените знак ',' на 'or'

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 21:07, 12-09-2009 | #95


Аватара для Bond01

Ветеран


Автор проектов


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

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


Ладно спасибо, я недумал, что столько ошибок будет, небуду-же Вам каждую строчку показывать.

Отправлено: 21:26, 12-09-2009 | #96


Ветеран


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

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


Когда только начинал знакомиться с Inno Setup и переупаковывал для себя некоторые игрушки, то по умолчанию ставил путь установки в {pf}\Games\... (C:\Program Files\Games\...), а фактически ставил их в D:\Games\...
Так меня постоянно мучал вопрос, какую переменную задать, чтоб Inno понимал, что ставить надо на диск D.
Самый простой способ - это прописать в DefaultDirName=D:\Games\..., но это не универсально и вдруг на другом компьютере будет только один диск.
Одним словом решения я тогда не нашёл, но недавно увидел похожий вопрос на другом форуме и вспомнил интересовавшую меня проблему.
В результате, вот скрипт, который определяет логические диски на компьютере и предлагает установить на первый логический диск не являющийся системным (если их несколько, в противном случае будет предложен системный диск).
Скрипт
Код: Выделить весь код
; скрипт, который определяет логические диски на компьютере и предлагает установить на первый
; логический диск не являющийся системным (если их несколько, в противном случае будет предложен
; системный диск).
; Автор: Serega, http://forum.oszone.net/member.php?userid=88670

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={code:NoSD}\Games\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Code]
function GetLogicalDrives: DWORD; external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(lpRootPathName: PChar): Cardinal; external 'GetDriveTypeA@kernel32.dll stdcall';

const
  DRIVE_FIXED = 3;

function NoSD(s: string): string;
var
  x, bit, i: Integer;
  tp: Cardinal;
  sd: string;
begin
  sd:= ExpandConstant('{sd}');
  Result:= sd;
  // Вызываем функцию WinAPI
  // Функция возвращает битовую маску установленных логических дисков.
  // Бит 0 определяет наличие диска А:, бит 1 - диска B и т.д.
  x:= GetLogicalDrives;
  if x <> 0 then
  // цикл по полученным битам переменной X
  for i:= 1 to 64 do
    begin
      // Накладываем битовую маску для выделения бита с поряковым номером 0
      bit:= x and 1;
      // нашли логический диск...
      if bit = 1 then
        begin
          // определяем тип логического диска
          tp:= GetDriveType(PChar(Chr(64 + i) + ':'));
          if tp = DRIVE_FIXED then
          // если диск не является системным
          if Chr(64 + i) <> Copy(sd, 1, 1) then
            begin
              Result:= Chr(64 + i) + ':';
              Break;
            end;
        end;
      // побитовый сдвиг вправо
      x:= x shr 1;
    end;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

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

Отправлено: 22:16, 12-09-2009 | #97


Аватара для A1EXXX

Старожил


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

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


Serega, интересно, мне пригодится!!!!

Ты, случайно, не знаешь, в чём может быть проблема... При распаковке FreeArc, когда, например, DefaultDirName={pf}\Название компании\Название игры\ такой, а я хочу установить в D:\Games\Название игры\ и распаковка сначала начинается во временный файл $$arcpackedfile$$.tmp возле setup.exe (а если exe'шник уже в образе, выбивает ошибку приложения)!!! Может есть какой-то нюанс, который может такое вызвать??? Проверил скрипт FeeArc'а отдельно - всё ОК, а когда все свои скрипты сливаю в один, получается такая фигня! Даже не знаю от чего отталкиваться, парадокс, блин!

Отправлено: 23:05, 12-09-2009 | #98


Ветеран


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

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


Цитата A1EXXX:
Может есть какой-то нюанс, который может такое вызвать??? »
Обязательно должен быть.
Цитата A1EXXX:
а когда все свои скрипты сливаю в один, получается такая фигня! »
Попробуйте добавлять по одному скрипту, т.е. чтоб выяснить проблемный и уже потом в нём смотреть где не так...
Я бы первым делом запустил поиск во всех скриптах, на наличие слова $$arcpackedfile$$.tmp, т.к. это не стандартная фраза и скорей всего прописана в одном из них, а уже потом изучил из-за чего такое получается.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 23:36, 12-09-2009 | #99


Ветеран


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

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


Serega,
Цитата Serega:
Это не мой, я только чего-то в нём исправлял »
Прошу прощения, если чем-то задел.
Но всё-таки можно ли в нём сделать текст белым цветом и отображение картинок на всех страницах инсталятора?

Отправлено: 04:04, 13-09-2009 | #100



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход