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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

Аватара для Gnom_aka_Lexander

Ветеран


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

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


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

читать дальше »
Код: Выделить весь код
function ReleaseCapture: Longint;
  external 'ReleaseCapture@user32.dll stdcall';
........................

procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  SendMessage(WizardForm.Handle,$0112,$F012,0);
end;

.......................

  WizardForm.OnMouseDown:=@LabelOnMouseDown;

там где WizardForm - укажешь свою поверхность, которая у тебя снаружи.

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

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

Отправлено: 07:20, 19-12-2012 | #1391



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

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


Аватара для Mailchik

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


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

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


Gambetto,
1. Не понятен вопрос. Просто найти по маске ? Вот скрипт, находит файлы по маске и выводит список найденных файлов в ListBox.
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
 FindButton : TButton;
 FindListBox : TListBox;

procedure FindFiles(Folder, Mask : string; List : TStrings);
var
  FilesFound: Integer;
  FindRec: TFindRec;
begin
  FIlesFound := 0;
  if FindFirst(Folder + '\' + Mask, FindRec) then begin
    try
      repeat
        if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
          List.Add(Folder + '\' + FindRec.Name);
          FilesFound := FilesFound + 1;
      until not FindNext(FindRec);
    finally
      FindClose(FindRec);
    end;
  end;
  if FilesFound = 0 then
  MsgBox('Ничего не найдено.', mbInformation, MB_OK);
end;

procedure FindButtonClick(Sender : TObject);
 begin
  {          Где искать?             Маска    Куда вывести список?
                  |                     |              |          }
  FindFiles(ExpandConstant('{src}'), '*.zip', FindListBox.Items);
end;

procedure FindListBoxClick(Sender : TObject);
 begin
  { При нажатии на ListBox заголовок инсталла изменяется на адрес к найденному файлу}
  WizardForm.Caption := TListBox(Sender).Items.Strings[TListBox(Sender).ItemIndex];
end;

procedure InitializeWizard;
 begin
  with WizardForm do begin
   OuterNotebook.Hide;
   SetBounds(Left, Top, ScaleX(520), ScaleY(400));
   Bevel.Width := ClientWidth;
  end;
  FindButton := TButton.Create(WizardForm);
  with FindButton do begin
   Parent := WizardForm;
   Caption := 'Find';
   OnClick := @FindButtonClick;
   SetBounds(ScaleX(10), ScaleY(250), ScaleX(100), ScaleY(30));
  end;
  FindListBox := TListBox.Create(WizardForm);
  with FindListBox do begin
   Parent := WizardForm;
   OnClick := @FindListBoxClick;
   SetBounds(ScaleX(10), ScaleY(10), ScaleX(500), ScaleY(200));
  end;
end;
2. Наверное невозможно сделать такое. Другим путём можно пойти: распаковываем нужный файл в темп и оттуда открываем его. Рядом со скриптом положите 7z.exe, который можно забрать на оф. сайте.
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
Source: 7z.exe; Flags: dontcopy

[Code]
var
 TestButton : TButton;

procedure TestClick(Sender : TObject);
var
 res : integer;
 begin
 { Сначала извлекаем файл из архива            Архив, из которого извлекаем            |        Извлекаем в темп     |    Нужный файл
                                                            |                                           |                     |                       }
 Exec(ExpandConstant('{tmp}\7z.exe'), 'e ' + ExpandConstant('{src}\archive.zip') + ' -o' + ExpandConstant('{tmp}') + ' test.txt -r',
   ExpandConstant('{tmp}'), SW_HIDE, ewNoWait, res);
 { Теперь запускаем текстовый файл через блокнот}
 Exec('notepad', ExpandConstant('{tmp}\test.txt'), ExpandConstant('{tmp}'), SW_SHOWNORMAL, ewNoWait, res);
end;

function InitializeSetup() : boolean;
 begin
  ExtractTemporaryFile('7z.exe');
  Result := True;
end;

procedure InitializeWizard;
 begin
  with WizardForm do begin
   OuterNotebook.Hide;
   SetBounds(Left, Top, ScaleX(520), ScaleY(400));
   Bevel.Width := ClientWidth;
  end;
  TestButton := TButton.Create(WizardForm);
  with TestButton do begin
   Parent := WizardForm;
   Caption := 'Открыть';
   OnClick := @TestClick;
   SetBounds(ScaleX(10), ScaleY(250), ScaleX(100), ScaleY(30));
  end;
end;
3. Опять же, не понятно что вам нужно. Просто найти строку? Или что то с ней делать? Вот скрипт, который при нахождении текста строки сообщает об этом.
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
var
 TestButton : TButton;
 F : String;
 S : TArrayOfString;
 i : integer;

procedure TestClick(Sender : TObject);
 begin
  F := ExpandConstant('{src}\test.txt');
  LoadStringsFromFile(F, S);
  if FileExists(F) then begin
   for i:= 0 to GetArrayLength(S) - 1 do
    begin
     if Pos('TestText', S[i]) > 0 then begin      //TestText - текст строки который нужно найти
      MsgBox('Строка найдена', mbInformation, MB_OK);
      Break;
     end;
    end;
   end else begin
  MsgBox('Файл не найден', mbError, MB_OK);
  end;
end;

procedure InitializeWizard;
 begin
  with WizardForm do begin
   OuterNotebook.Hide;
   SetBounds(Left, Top, ScaleX(520), ScaleY(400));
   Bevel.Width := ClientWidth;
  end;
  TestButton := TButton.Create(WizardForm);
  with TestButton do begin
   Parent := WizardForm;
   Caption := 'Test';
   OnClick := @TestClick;
   SetBounds(ScaleX(10), ScaleY(250), ScaleX(100), ScaleY(30));
  end;
end;

Последний раз редактировалось Mailchik, 19-12-2012 в 13:28.

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

Отправлено: 10:06, 19-12-2012 | #1392


Аватара для Gnom_aka_Lexander

Ветеран


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

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


2. Наверное невозможно сделать такое.
возможно. Я давал пример замены файла в зип-архиве. распаковка строго заданного файла и упаковка другого файла в этот архив. Ну да, для этого нужно целую тему полопатить. Но мне лениво вспоминать, как я это делал. и за кого-то лопатить тему - тоже неохота. Ответ есть, значит все, что нужно - просто его найти.

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


Последний раз редактировалось Gnom_aka_Lexander, 19-12-2012 в 10:21.


Отправлено: 10:14, 19-12-2012 | #1393


Аватара для Mailchik

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


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

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


Gnom_aka_Lexander, я имел в виду, что именно так как описал Gambetto невозможно. а так как ты описал, это да. сначала распаковать определенный файл, в темп например, а потом его прочитать.

Отправлено: 12:04, 19-12-2012 | #1394


Аватара для Dark_Delphin

Старожил


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

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


Gnom_aka_Lexander, да. Спасибо большое, всё получилось.

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

-------
✘ _420.pp_✘


Отправлено: 18:35, 19-12-2012 | #1395


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Dark_Delphin, потому, что IsSkin.dll не соответствует версии компилятора. это тоже буквально пару страниц назад было. это единственная возможна причина.

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

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

Отправлено: 19:11, 19-12-2012 | #1396


Аватара для Dark_Delphin

Старожил


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

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


Gnom_aka_Lexander, блин Точно, спасибо.

-------
✘ _420.pp_✘


Отправлено: 19:49, 19-12-2012 | #1397


Аватара для Dark_Delphin

Старожил


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

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


Как избежать ошибки?

http://forum.oszone.net/attachment.p...1&d=1355944597

-------
✘ _420.pp_✘


Последний раз редактировалось Dark_Delphin, 20-01-2020 в 11:00.


Отправлено: 23:16, 19-12-2012 | #1398


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


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

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


Цитата Mailchik:
Не понятен вопрос. Просто найти по маске? »
Найти по маске архив, достать из него файл, в этом файле найти строку type=1 или type=2.
В зависимости от значения type устанавливать ту или иную программу.

Спасибо за примеры.

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


Аватара для Dark_Delphin

Старожил


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

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


Всем привет.

Помогите сделать, чтобы при распаковке файлов прогрес бар работал (Распаковка файлов, которые собраны компилятором)
ставил ssInstall и та же проблема.

Скачать

-------
✘ _420.pp_✘


Последний раз редактировалось Dark_Delphin, 20-12-2012 в 15:03.


Отправлено: 14:53, 20-12-2012 | #1400



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




 
Переход