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

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

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

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

Ветеран


Contributor


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


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

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

 

Аватара для nik1967

Старожил


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

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


Изображения
Тип файла: png snap177.png
(436.2 Kb, 13 просмотров)

Цитата Johny777:
блин
как вы вкладываете файл в сообщение?
"вложения" »

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".

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

Отправлено: 13:57, 04-04-2012 | #1391



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

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


Аватара для Johny777

Ветеран


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

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


wertulll,
я проверил перед тем как выложить
к тому же везде где куски скрипта вставил приписал, что они вставлены
ты можешь легко всё убрать
Цитата wertulll:
не отображается ни проценты не время »
100% ты не сделал как написано в коментарии
/// к каждой строке фалов, относящейся к отображению процентов и размера нужно приписать ;AfterInstall: Progress;
/// Пример Source: Files\screenshots\*;DestDir: {app};AfterInstall: Progress;
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:13, 04-04-2012 | #1392


Аватара для Raf-9600

Старожил


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

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


Цитата Johny777:
ты в курсе?
есть всплывающие подсказки в расширенной версии.
Наводишь на элемент и появляется подсказка
вот сделал
если описание большое, то появляется скроллбар (здесь вертикальный) »
Я знаю про такую фишку, и использовал её реализацию от Shegorat http://forum.oszone.net/post-1769157.html#post1769157

Но в версии от Shegorat меня смущало отсутствие скроллбара, а в твоей версии не нравиться, что в ней можно выделить текст. Это можно как-то изменить?

Последний раз редактировалось Raf-9600, 04-04-2012 в 15:06.


Отправлено: 14:51, 04-04-2012 | #1393


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


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

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


Johny777, блин точно пропустил Спасиб большой всё работает

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


Аватара для Johny777

Ветеран


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

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


Цитата Raf-9600:
, и использовал её реализацию от Shegorat »
не
не то
вот к каждому элементу приписываешь
Код: Выделить весь код
    Hint := 'я всплывающая подсказка';
    ParentShowHint := False;
    ShowHint := True;
Цитата Raf-9600:
Это можно как-то изменить? »
так поставь
http://forum.oszone.net/attachment.p...1&d=1333538391

Последний раз редактировалось Johny777, 04-09-2012 в 13:25.

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

Отправлено: 15:20, 04-04-2012 | #1395


Аватара для Raf-9600

Старожил


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

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


Цитата Johny777:
Hint := 'я всплывающая подсказка'; »
Полноценного описания компонентов это конечно не заменит, но все же любопытно... Можешь показать реализацию? А то я слегка нюб

Цитата Johny777:
так поставь »
Пробовал. Но тогда текст становиться менее темным и скроллбар блокируется =(

Последний раз редактировалось Raf-9600, 04-04-2012 в 15:38.


Отправлено: 15:26, 04-04-2012 | #1396


Аватара для Johny777

Ветеран


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

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


Цитата Raf-9600:
о тогда текст становиться менее темным и скроллбар блокируется =( »
тогда хз
да и какая разница. Пусть выделяется!
Цитата Raf-9600:
Можешь показать реализацию? А то я слегка нюб »
вот готовый пример
скомпилируй и наведи курсор на чекбокс
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
PrivilegesRequired=none
OutputDir=.

[  Code]
var
  Demo_CheckBox: TCheckBox;

procedure InitializeWizard();
begin
Demo_CheckBox := TCheckBox.Create(WizardForm);
 with Demo_CheckBox do
  begin
    Parent := WizardForm;
    Caption := 'Я чекбокс';
    Left := ScaleX(20);
    Top :=  ScaleY(327);
    Width := ScaleX(100);
    Height := ScaleY(15);
    Checked := False;
    /// всплывающая подсказака /// начало
    Hint := 'а я всплывающая подсказка';
    ParentShowHint := False;
    ShowHint := True;
    /// конец
   end;
end;

а делается легко
http://forum.oszone.net/attachment.p...1&d=1333540276
раньше тоже как ты скрипт использовал для описания в отдельном окошке, но потом отказался от ComponentList-a, тк криво отрисовываются чекбоксы (заместо тех, что в скине виндовсовские). Двигать их нельзя и прочее
в месте с компонентами улетело и описание, тк ему на смену пришли всплывающие подсказки

Последний раз редактировалось Johny777, 04-09-2012 в 13:25.

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

Отправлено: 15:51, 04-04-2012 | #1397


Аватара для Raf-9600

Старожил


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

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


Цитата Johny777:
да и какая разница. Пусть выделяется! »
Ну да, хоть и менее солидно, но не критично. Возможно на ру-боарде ещё уточню, на всякий случай.

Цитата Johny777:
а делается легко »
Благодарю, весьма полезная штукенция.

Тогда у меня возникает вопрос:
У меня есть некоторые правила для автоматического выбора компонентов и блокировки их, а можно ли сделать так, чтобы когда одно из таких правил срабатывало, и пользователь наводил курсор на заблокированный компонент, то высвечивалась бы всплывашка, объясняющая, почему компонент заблокирован?

Интуиция подсказывает мне что это фантастика... Но вдруг я ошибаюсь?

Собсно сами правила блокировки:
читать дальше »
Код: Выделить весь код
var
OldEvent_ComponentsListClickCheck: TNotifyEvent;

procedure ComponentsListClickCheck(Sender: TObject);

begin
If IsComponentSelected('PlugY') or IsComponentSelected('GameLoD') then begin
WizardForm.ComponentsList.ItemEnabled[84]:=False  //Version\104c
WizardForm.ComponentsList.ItemEnabled[85]:=False  //Version\105b
end else begin
WizardForm.ComponentsList.ItemEnabled[84]:=True
WizardForm.ComponentsList.ItemEnabled[85]:=True
OldEvent_ComponentsListClickCheck(Sender);
end;

begin
If IsComponentSelected('GameLoD') and not IsComponentSelected('PlugY') then begin
WizardForm.ComponentsList.ItemEnabled[86]:=True; //Version\107
WizardForm.ComponentsList.ItemEnabled[87]:=True; //Version\108
end else begin
WizardForm.ComponentsList.ItemEnabled[86]:=False;
WizardForm.ComponentsList.ItemEnabled[87]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;
end;

begin
If IsComponentSelected('GameLoD') and (IsComponentSelected('Version\109') or IsComponentSelected('Version\109b') or IsComponentSelected('Version\109d') or IsComponentSelected('Version\110') or IsComponentSelected('Version\111') or IsComponentSelected('Version\111b') or IsComponentSelected('Version\112a') or IsComponentSelected('Version\113c')) then
WizardForm.ComponentsList.ItemEnabled[104]:=True   //PlugY
else
WizardForm.ComponentsList.ItemEnabled[104]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;


begin
If IsComponentSelected('PlugY') then
WizardForm.ComponentsList.ItemEnabled[96]:=False   //Version\113d
else
WizardForm.ComponentsList.ItemEnabled[96]:=True;
OldEvent_ComponentsListClickCheck(Sender);
end;


end;



procedure InitializeWizard();
begin
with WizardForm.ComponentsList do
begin
OldEvent_ComponentsListClickCheck := OnClickCheck;
OnClickCheck := @ComponentsListClickCheck;
ItemEnabled[84]:=False;  //Version\104c
ItemEnabled[85]:=False;  //Version\105b
ItemEnabled[104]:=False;  //PlugY
end;
end;
//---


//Автоматический выбр компонентов
procedure ComponentsListOnClickCheck(Sender: TObject);
begin
  if wizardform.ComponentsList.Checked[1] then
    wizardform.ComponentsList.Checked[5]:=true; //GameDiablo2\Text

begin
  if wizardform.ComponentsList.Checked[50] then  //GameLoD
    wizardform.ComponentsList.Checked[51]:=true; //GameLoD\VoiceLoD

begin
  if wizardform.ComponentsList.Checked[1] then
    wizardform.ComponentsList.Checked[83]:=true; //Version

begin
  if wizardform.ComponentsList.Checked[1] then
   wizardform.ComponentsList.Checked[17]:=true; //GameDiablo2\VoiceD2
end;
end;
end;
end;

procedure InitializeWizard6();
begin
  wizardform.ComponentsList.OnClickCheck:=@ComponentsListOnClickCheck
end;
//---

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


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


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

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


Цитата Johny777:
вот например El Sanchez выкладывал много страниц назад
не даёт пользователю запустить тот же инсталл несколько раз пока он работает
очень полезная штука! »
Так та оно прикольно, но ведь эта же штука не даст сделать откат установки исдона (или ISExec и т.п.). Т.к. при откате запускается деинсталлятор, а он тоже будет проверять наличие запущенного приложения. А оно будет запущено, следовательно выдаст уведовмление и деинсталляция не произведется.

Отправлено: 16:22, 04-04-2012 | #1399


Аватара для Johny777

Ветеран


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

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


Raf-9600,
сложно для меня
не знаю как добавить подсказку, если компонент "выключен" (ItemEnabled[86]:=False)
и попробовав скажу, что для заблокированного элемента подсказка не всплывает
вот так могу сделать (других идей нет)
скомпилируй
посмотри
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
PrivilegesRequired=none
OutputDir=.




[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030107D01000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F101134F6E436F6E73747261696E6564526573697A6507036F66660C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000000C544E6577436865636B426F780C6F66665F636865636B626F78044C65667403980003546F7003480105576964746802610648656967687402110743617074696F6E120400000032044B043A043B04085461624F726465720205074F6E436C69636B07036F6666000000

[   Code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  off_checkbox: TNewCheckBox;

procedure off(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
  { off_checkbox }
  off_checkbox := TNewCheckBox.Create(WizardForm);
  with off_checkbox do
  begin
    Name := 'off_checkbox';
    Parent := WizardForm;
    Left := ScaleX(152);
    Top := ScaleY(328);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Caption := 'выкл';
    OnClick := @off;
  end;

  off_checkbox.TabOrder := 5;

{ ReservationBegin }
  // Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!
  var
  Demo_CheckBox: TCheckBox;

procedure InitializeWizard();
begin
  RedesignWizardForm;

Demo_CheckBox := TCheckBox.Create(WizardForm);
 with Demo_CheckBox do
  begin
    Parent := WizardForm;
    Caption := 'Я чекбокс';
    Left := ScaleX(20);
    Top :=  ScaleY(327);
    Width := ScaleX(120);
    Height := ScaleY(15);
    Checked := False;
    /// всплывающая подсказака /// начало
    Hint := 'а я всплывающая подсказка';
    ParentShowHint := False;
    ShowHint := True;
    /// конец
   end;
end;


function make: Boolean;
begin
  Result:=off_checkbox.Checked;
end;

procedure off(Sender: TObject);
begin
  If off_checkbox.Checked = false
   then
     begin
       Demo_CheckBox.Enabled:= true;
       Demo_CheckBox.Caption := 'Я чекбокс';
     end
   else
     begin
       Demo_CheckBox.Enabled:= false;
       Demo_CheckBox.Caption := 'меня заблокировали';
     end;
end;


Цитата sergey3695:
запускается деинсталлятор »
какой?
можно пример?

Отправлено: 16:35, 04-04-2012 | #1400



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




 
Переход