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

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

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

Ветеран


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


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

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

 

Аватара для svensoft

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


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

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


Cartmans,
Цитата Cartmans:
Обьясните как правильно сделать скрипт фрииарка, что где прописать что бы не было ошибок при отмене установки и т.д. скрипт фрииакра(стандартный) у меня есть »
alex2010,
Цитата Cartmans:
подскажите пожалуйста код, чтоб было как на скрине(подсчитывало свободное место на ЖД)
Вот скрипт с настроеным фриарком и реализованым подсчетом свободного места на жд : http://upwap.ru/757248
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:07, 02-03-2010 | #1391



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

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


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


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

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


Цитата solvador:
Подскажите пожалуйста, как работать в инно со множествами? »
есть смутное подозрение, что никак
хоть инно и определяет set как служебное слово, но свое множество я так и не смог определить
тоже самое в отношении in

Отправлено: 11:01, 02-03-2010 | #1392


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


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

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


South, такая же беда.
Написал такой код:
Код: Выделить весь код
procedure DBBackup();
var
  C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z: String;
begin
CreateBackup; {вызов процедуры создания резервных копий}
C:= 'c'; D:= 'd'; E:= 'e'; F:= 'f'; G:= 'g'; H:= 'h'; I:= 'i'; J:= 'j'; K:= 'k'; L:= 'l'; M:= 'm'; N:= 'n'; O:= 'j'; P:= 'p'; Q:= 'q'; R:= 'r'; S:= 's'; T:= 't'; U:= 'u'; V:= 'v'; W:= 'w'; X:= 'x'; Y:= 'y'; Z:= 'z';
  if FindFirst(ExpandConstant('{app}\gamedata.db*'), FindFiles) then {ищем по маске файлы в директории}
  begin repeat
    Delete(FindFiles.Name, 1, 11); {режем строку до одной последней буквы}
    case FindFiles.Name of {сравнение и результат}
      C: CreateDBBackup; D: CreateDBBackup; E: CreateDBBackup; F: CreateDBBackup; G: CreateDBBackup; H: CreateDBBackup;
      I: CreateDBBackup; J: CreateDBBackup; K: CreateDBBackup; L: CreateDBBackup; M: CreateDBBackup; N: CreateDBBackup;
      O: CreateDBBackup; P: CreateDBBackup; Q: CreateDBBackup; R: CreateDBBackup; S: CreateDBBackup; T: CreateDBBackup;
      U: CreateDBBackup; V: CreateDBBackup; W: CreateDBBackup; X: CreateDBBackup; Y: CreateDBBackup; Z: CreateDBBackup;
//      else MsgBox(FindFiles.Name, mbCriticalError, mb_OK); {выводим имя пропущенного файла для проверки}
    end;
      until not FindNext(FindFiles);
      FindClose(FindFiles);
  end;
end;
Он рабочий, но хоть я ни капли не программист, но уж больно глаза режет. Как мне кажется, через множества он был бы намного проще и правильней.
По крайней мере для реализации её таким способом

Последний раз редактировалось solvador, 02-03-2010 в 13:13.


Отправлено: 13:00, 02-03-2010 | #1393


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


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

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


Цитата solvador:
Написал такой код: »
а так не проще?
Код: Выделить весь код
procedure DBBackup();
var
//  C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z: String;
  FindFiles : TFindRec;
  LastChar  : Char;
begin
  CreateBackup; {вызов процедуры создания резервных копий}
//C:= 'c'; D:= 'd'; E:= 'e'; F:= 'f'; G:= 'g'; H:= 'h'; I:= 'i'; J:= 'j'; K:= 'k'; L:= 'l'; M:= 'm'; N:= 'n'; O:= 'j'; P:= 'p'; Q:= 'q'; R:= 'r'; S:= 's'; T:= 't'; U:= 'u'; V:= 'v'; W:= 'w'; X:= 'x'; Y:= 'y'; Z:= 'z';
  if FindFirst(ExpandConstant('{app}\gamedata.db*'), FindFiles) then begin {ищем по маске файлы в директории}
    repeat
//      Delete(FindFiles.Name, 1, 11); {режем строку до одной последней буквы}
      LastChar:=UpperCase(FindFiles.Name)[Length(FindFiles.Name)];
      if (LastChar<>'A') and (LastChar<>'B') then CreateDBBackup;
//      case FindFiles.Name of {сравнение и результат}
//        C: CreateDBBackup; D: CreateDBBackup; E: CreateDBBackup; F: CreateDBBackup; G: CreateDBBackup; H: CreateDBBackup;
//        I: CreateDBBackup; J: CreateDBBackup; K: CreateDBBackup; L: CreateDBBackup; M: CreateDBBackup; N: CreateDBBackup;
//        O: CreateDBBackup; P: CreateDBBackup; Q: CreateDBBackup; R: CreateDBBackup; S: CreateDBBackup; T: CreateDBBackup;
//        U: CreateDBBackup; V: CreateDBBackup; W: CreateDBBackup; X: CreateDBBackup; Y: CreateDBBackup; Z: CreateDBBackup;
        //else MsgBox(FindFiles.Name, mbCriticalError, mb_OK); {выводим имя пропущенного файла для проверки}
//      end;
    until not FindNext(FindFiles);
    FindClose(FindFiles);
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:42, 02-03-2010 | #1394


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


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

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


South, ну разумеется проще
Я же говорю, что ни капли не программист. Хотя и LastChar (хотел сказать аналогичный пример) всё время был на виду пока листал руководства, но использовать его ума не хватило
Спасибо!
Правда там есть архивы заканчивающиеся на 1...9. Но думаю это решается быстро.
Хм... посмотрел статьи Ерёмина, где как мне казалось видел аналогичный пример. Там такого нет, видимо ошибся...

Последний раз редактировалось solvador, 02-03-2010 в 14:27.


Отправлено: 14:06, 02-03-2010 | #1395


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


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

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


кое-что смог сделать со множествами, оказывается они все-таки есть, только вот работать с ними как-то не очень удобно
Код: Выделить весь код
var
  c:Char;
  b:byte;
  MySet1: set of char;
  MySet2: set of byte;
begin
  MySet1:=['a','b','x','y'];
  MySet2:=[byte(1),byte(2),byte(3),byte(4),byte(5),byte(6),byte(7),byte(8),byte(9)];
  c:='a';
  if c in MySet1 then MsgBox('c in MySet1; c = '+c, mbCriticalError, mb_OK);
  b:=0;
  if b in MySet2 then MsgBox('b in MySet2; b = '+IntToStr(b), mbCriticalError, mb_OK);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:44, 02-03-2010 | #1396


Аватара для A1EXXX

Старожил


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

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


Inno ISCmplr Setup 5.3.8 build 100301 by Restools
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:18, 02-03-2010 | #1397


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


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

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


South, ещё раз Спасибо. Пригодится.
Попробовал опираясь на ваш код слегка его подправить Получилось так:
Код: Выделить весь код
const 
  Symbol = 'cdefghijklmnopqrstuvwxyz';

procedure DBBackup();
var
  FindFiles : TFindRec;
begin
  CreateBackup; {вызов процедуры создания резервных копий}
  if FindFirst(ExpandConstant('{app}\gamedata.db*'), FindFiles) then begin {ищем по маске файлы в директории}
    repeat
        if Pos(FindFiles.Name[Length(FindFiles.Name)],Symbol) > 0 then CreateDBBackup;
    until not FindNext(FindFiles);
    FindClose(FindFiles);
  end;
end;
Вроде робит... Правда нужно наверное вместо [Length(FindFiles.Name) поставить фиксированную цифру, чтобы исключить файлы типа gamedata.dbb.bak . так как они удовлетворяют маске поиска и содержат последнюю букву включённую в symbol.

Отправлено: 15:21, 02-03-2010 | #1398


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


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

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


solvador,
можно и так, только, если пишешь
Код: Выделить весь код
Symbol = 'cdefghijklmnopqrstuvwxyz';
, то
Код: Выделить весь код
Pos(FindFiles.Name[Length(FindFiles.Name)],Symbol)
лучше написать как
Код: Выделить весь код
Pos(LowerCase(FindFiles.Name)[Length(FindFiles.Name)],Symbol)
. вдруг расширение в верхнем регистре будет написано
Цитата solvador:
чтобы исключить файлы типа gamedata.dbb.bak »
попробуй задать маску "gamedata.db?", правда не знаю будет ли работать инно с такой маской
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:02, 02-03-2010 | #1399


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


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

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


svensoft, мне нужен скрипт без наворотов))

Отправлено: 16:36, 02-03-2010 | #1400



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




 
Переход