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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


El Sanchez, ВОТ! как при задании элементов массива отделить строки!
через точку с запятой или вот так?
['Москва','ул','Пушкарная','','']
['','','','',''']
['','Ленинград','','пер','Московский']
[...]


епт даже так не прокатывает
sss[0] := ['','Ленинград','','пер','Московский']
поотдельности забивать я идиотом сделаюсь

другой вопрос про синтаксис Инно - каким способом в инно закомментировать целый блок секции или кода?
// и ";" - это для строки

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 16-02-2012 в 15:05.


Отправлено: 14:44, 16-02-2012 | #831



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

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


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата R.i.m.s.k.y.:
каким способом в инно закомментировать целый блок секции или кода? »
{закоментированный
блок}
(*закоментированный
блок*)

както так. Вроде больше нет знаков коментария.

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

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

Отправлено: 16:05, 16-02-2012 | #832


Аватара для Johny777

Ветеран


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

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


С точки зреня логики я поменял местами страницы
теперь страница wpSelectComponents находится перед страницей wpSelectDir
чтобы сделать ещё лучше, хотелось бы расширить возможности ComponentsDiskSpaceLabel
чтобы проверялось свободное место на диске
логика такая
например выборан только компонент 1 размером 4гб
на жёстком диске свободно 6
результат: кнопка далее активна

теперь выбраны 2 компонента общим размером 9гб
места не хватает
появляется надпись (лейбл.Show или сатикТекст.Show)
результат: кнопка далее неактивна

у меня было похожее решение, но там необходимое место на диске было "статичным" и задавалось заранее
подскажите пожалуйста как это сделать?

Отправлено: 21:07, 16-02-2012 | #833


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

Ветеран


Contributor


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

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


Цитата Лександер:
Готов сделать длл-ку, но нужны тесты для отладки »
Лександер, не отработало (Win7 x64). Зато получилось через Code.
Код: Выделить весь код
[code]
#ifndef UNICODE
    #error REQUIRES UNICODE INNO SETUP!
#endif

const
    CLSID_DesktopGadget = '{924CCC1B-6562-4C85-8657-D177925222B6}';
type
    IDesktopGadget = interface(IUnknown)
    '{924CCC1B-6562-4C85-8657-D177925222B6}'
    function RunGadget(gadgetPath: String): HResult;
end;

procedure ShowGadget(gadgetPath: String);
var
    pDG: IDesktopGadget;
    Obj: IUnknown;
begin
    if (GetWindowsVersion shr 24 > 6) or ((GetWindowsVersion shr 24 = 6) and ((GetWindowsVersion shr 16) and $FF > 0)) then
    begin
        Obj := CreateComObject(StringToGuid(CLSID_DesktopGadget));
        pDG := Obj as IDesktopGadget;
        pDG.RunGadget(gadgetPath);
        CoFreeUnusedLibraries;
    end;
end;

procedure InitializeWizard();
begin
    ShowGadget(ExpandConstant('{pf}\Windows Sidebar\Gadgets\Clock.Gadget'));
end;
P.S. Код через F7 не гонять - не отработает, на x64-системах не использовать гаджеты из {pf64} - не отработает, после закрытия гаджета дать системе 10-15 сек. сделать свои черные дела, иначе повторный запуск скрипта - ... ну, вы уже знаете.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:44, 17-02-2012 | #834


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата El Sanchez:
Зато получилось через Code. »
ИМХО, если работает из скрипта, то лучше так и оставить. Нет смысла из-за десятка строчек кода лишние 10-16 кил к инсталлу добавлять.
Единственное - стоит побороть-таки, несовместимость с АНСИ.
Вся беда в отсутствии расширенных строковых типов в инно.
Но их можно, наверное описать?

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


Последний раз редактировалось Gnom_aka_Lexander, 18-02-2012 в 13:57.

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

Отправлено: 13:45, 18-02-2012 | #835


Аватара для Johny777

Ветеран


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

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


прошу прощения
в справке нашёл ответ на свой вопрос из предыдущего сообщения

вопрос в том как вместо сообщения отобразить инфомацию (выделил жирным шрифтом)
на появляющемся лейбле вместо окна
Код: Выделить весь код
var
  Path: String;
  FreeMB, TotalMB: Cardinal;
  function GetSpaceOnDisk(const Path: String; const InMegabytes: Boolean; var Free, Total: Cardinal): Boolean;
begin
  // Get and display free megabytes on the Program Files drive
  Path := ExpandConstant('{pf}');
  if GetSpaceOnDisk(Path, True, FreeMB, TotalMB) then
  begin
    MsgBox('There are ' + IntToStr(FreeMB) + ' megabytes free on ' +
      Path, mbInformation, MB_OK);
      WizardForm.NextButton.Enabled:=False  /// добавил
      лейбл нехватки места.Show   /// добавил
  end
  else begin
    // the function failed
  end;
end;

Последний раз редактировалось Johny777, 18-02-2012 в 15:08.


Отправлено: 14:58, 18-02-2012 | #836


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


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

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


У меня в процессе установки создаются файлы, о которых установщик "не знает". Если установку прервать или что-то случится до её завершения, то эти файлы останутся.
Что можно сделать в данном случае?

При "корректной" деинсталляции, есть способ, записать все файлы, например в секцию "UninstallDelete".

А ЕСЛИ ДО ДЕИНСТАЛЛЯЦИИ ДЕЛО "НЕ ДОЙДЁТ"?!

Как быть с сохранениями и (настройками), которые хранятся в папке установки приложения?
Мне нужно, чтобы ВСЯ папка удалялась, КРОМЕ папки с сохранениями (если пользователь решит её оставить), а если нет, то чтобы всё удалялось?

Как удалить сохранения игры "по расширению"?

В подпапке папки установки игры создаются файлы с расширением *.sav и/или *.red, а название у этих файлов любое, - какое пользователь им придумает.
Например: My Game\userdata\1.sav; My Game\userdata\1.sav.
"userdata" - это папка в которой хранятся различные "профили" пользователя, - ТУПО ЕЁ всю удалять и/или "реагировать" на неё НЕЛЬЗЯ , т.к. кроме сохранений там есть и другие файлы.
А "1.sav" и/или "1.red" - это файлы сохранения, но имя может быть любым, нужно найти их и предложить удалить если есть таковые, и ничего не предлагать если в папке "userdata" их нет!!!

читать дальше »
Как найти и предложить удалить эти файлы?

Или может быть есть вариант "проще", удалять "не глядя" ВСЮ папку установки, включая все файлы, созданные в процессе..., НО КРОМЕ файлов сохранений (если они есть и если пользователь решил их оставить)?!
И удалить ВСЁ если пользователь захочет это сделать.

Как добавить сообщение на разных языках в "ChangeCaption"

У меня в секции Files, "своё" сообщение во время распаковки фалов: "BeforeInstall: ChangeCaption('Текст сообщения...')"

Как сделать на нескольких языках - для мультиязычной установки?

Отправлено: 19:37, 18-02-2012 | #837


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


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

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


Кто знает сайтик где есть готовые скрипты инсталлеров? скиньте плиз

Отправлено: 23:34, 18-02-2012 | #838


Забанен


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

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


Подскажите, а как сделать тоже самое:
читать дальше »
Код: Выделить весь код
[ code]
Function InitializeSetup: Boolean;
var
res : integer;
begin
Result := True;
Exec('ping.exe ', ' 2ip.ru ', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, res);
if res = 0 then begin
MsgBox('Найдено подключение к интернету. Установка будет прекращена!', mbInformation, MB_OK);
Result := False;
end;
end;
но только чтоб и с локалкой отрабатывало, а то когда интернет есть, всё работает, а когда интернет отключен и работает только локалка, то установщик запускается, а нужно чтоб было как и с рабочим интернетом, такое вообще возможно?

Цитата VASYAKRN:
переимини »
Чтож ты ирод так русский язык то коверкаешь, я было чуть язык не сломал!

Отправлено: 02:26, 20-02-2012 | #839


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Devils Night, ну как вариант пинговать 127.0.0.1, это loopback адрес, если он пинугется - значит сеть есть
Кстати пинговать 2ip для определения нэта не самый кошерный вариант, ping возвращает неноль только если сети нет, если к примеру ему ДНС вернет что данный узел не найден, пинг с чистой совестью вернет 0, хотя сайты не открываются и автообновлялка отвалится с тойже ошибкой
Выше El Sanchez дал пример кошерного определения связи

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 10:16, 20-02-2012 | #840



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход