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

Ответить
 • Просмотры: 34
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

Aplle, ты не в тему, тебе вообще то
Скрипты Inno Setup. Помощь и советы [часть 4]
.


Цитата Aplle:



Нарушение ОПК 3.9
Скрипты Inno Setup. Помощь и советы [часть 4]




volk1234, А 3.7 уже не считается?


Цитата ZverBY:



Кто-нибудь может достать либо сделать скрипт
Скрипты Inno Setup. Помощь и советы [часть 4]




Тебя это тоже касается. Нарушение ОПК 3.7
Аватара пользователя
kindza811

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение kindza811 »

Всё заработало! Убрал не нужное....



Код:

Код: Выделить всё

[Setup]
DiskSpanning=yes
DiskSliceSize=max

R.i.m.s.k.y., спасибо я сделал вот так проверил всё работает!

Ты н ругайся я еще в этом чайнк имею дела с этой прогой всего лишь неделю Изображение
Аватара пользователя
Rikill

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Rikill »

kindza811,
этой
библиотекой ещё можно. Довольно-таки удобно.
Аватара пользователя
leshcat

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение leshcat »

Здравствуйте,



Задача:



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



Пишу в реестр данной строчкой:



RegWriteStringValue(HKCU,'Software\Microsoft\Windows\CurrentVersion\RunOnce','Boban Installer', '{src}\{#archname}.exe');



Конечно же, параметр записывается как строка, а мне ,естественно, нужно получить путь от {src}. Как этого достичь?
Аватара пользователя
valyok666

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение valyok666 »

Rikill, норм библиотека от Vintage)
Аватара пользователя
Raf-9600

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Raf-9600 »

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



P.S.

Собстно такой код нужен для использования с улучшенным деинсталлятором
UninsHs
, чтобы когда пользователь выбрал в нем "Изменить" или "Восстановить", то не перезаписывались все файлы, а только измененные.



upd

А реально ли в этом коде сделать так, чтоб выбрав компонент под номером 3, у компонента под номером 5, менялось описание?




читать дальше »




Код:

Код: Выделить всё

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
russian.ComponentsInfoPanel1=Описание
russian.ComponentsInfoPanel2=Наведите курсор мыши на компонент, чтобы прочитать его описание.
[c0de]
type
  TComponentDesc = record Description: String; Index: Integer; end;
var
  Descs: array of TComponentDesc;
  Info: TNewStaticText;
  InfoCaption: TNewStaticText;
  InfoPanel: TPanel;
  Indx: Integer;
procedure ShowDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var i: Integer;
begin
  Indx:=-1;
  for i:= 0 to GetArrayLength(Descs)-1 do begin
  if (Descs[i].Index=Index) then begin Indx:=i; Break end; end;
  if (Indx >=0)and(Area=iaItem) then Info.Caption:= Descs[Indx].Description else Info.Caption:= ExpandConstant('{cm:ComponentsInfoPanel2}');
end;
procedure AddDescription(AIndex: Integer; ADescription: String);
var i, k: Integer;
begin
i:= GetArrayLength(Descs); SetArrayLength(Descs, i+1);
Descs[i].Description:= ADescription; Descs[i].Index:= AIndex-1
end;
procedure InitializeWizard();
begin
  WizardForm.TypesCombo.Visible:=False;
  WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height + WizardForm.ComponentsList.Top - WizardForm.TYPESCOMBO.Top;
  WizardForm.ComponentsList.Top := WizardForm.TYPESCOMBO.Top;
  WizardForm.ComponentsList.Width := ScaleX(200);
  WizardForm.ComponentsList.OnItemMouseMove:= @ShowDescription
  InfoPanel := TPanel.Create(WizardForm);
  InfoPanel.Parent := WizardForm.SelectComponentsPage;
  InfoPanel.Caption := '';
  InfoPanel.Top := WizardForm.ComponentsList.Top;//ScaleY(12);         // поднимает панель, но опускает панель с текстом
  InfoPanel.Left := ScaleX(216);
  InfoPanel.Width := ScaleX(200);
  InfoPanel.Height := WizardForm.ComponentsList.Height; //ScaleY(40);
  InfoPanel.BevelInner := bvRaised;
  InfoPanel.BevelOuter := bvLowered;
  InfoCaption := TNewStaticText.Create(WizardForm);
  InfoCaption.Parent := WizardForm.SelectComponentsPage;
  InfoCaption.Caption := ExpandConstant('{cm:ComponentsInfoPanel1}');
  InfoCaption.Left := ScaleX(224);
  InfoCaption.Top := InfoPanel.Top - ScaleY(5);    //поднять слово Описание
  InfoCaption.Font.Color := clActiveCaption;
  Info := TNewStaticText.Create(WizardForm);
  Info.Parent := InfoPanel;
  Info.AutoSize := False;
  Info.Left := ScaleX(6);
  Info.Width := ScaleX(188); //шырина текста
  Info.Top := ScaleY(12);     //Чем больше значение, тем ниже опускаеться полоска текста
  Info.Height := WizardForm.ComponentsList.Height - ScaleY(18);   //Чем больше значение, тем ниже опускаеться полоска текста
  Info.Caption := ExpandConstant('{cm:ComponentsInfoPanel2}');
  Info.WordWrap := true;
  AddDescription(1, 'Это дополнение выпущенно 31 июля 1998 года. Созданно Aztech New Media. Этот продукт был официально признан Blizzard Entertainment, разработчиком оригинальной игры. Дополнение содержит три кампании, по 10 миссий каждая, и более чем 100 дополнительных карт.123456789'); //первый параметр - это номер компонента, идет последовательно от начала записи компонентов
  AddDescription(2, 'Английская справка'); //Второй параметр - это собственно описание компонента
  AddDescription(3, 'Русская справка');
  AddDescription(4, 'Плагины');
  AddDescription(5, 'Внутреннего просмотра');
  AddDescription(6, 'Архиваторные');
  AddDescription(7, 'Системные');
  AddDescription(8, 'CanonCam');
  AddDescription(9, 'PluginManager');
  AddDescription(10, 'Registry');
  AddDescription(11, 'Services');
  AddDescription(12, 'StartupGuard');
  AddDescription(13, 'Другие');
end;
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

leshcat, ExpandConstant



Код:

Код: Выделить всё

RegWriteStringValue(HKCU,'Software\Microsoft\Windows\CurrentVersion\RunOnce','Boban Installer', ExpandConstant('{src}\{#archname}.exe'));

я точно не знаю переварит ли ExpandConstant переменную {#archname}, по идее должен
Аватара пользователя
XXXler

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение XXXler »

R.i.m.s.k.y., то есть ты сделал так, чтобы автоматически скрывалась?



Сейчас проверим!



R.i.m.s.k.y., всё осталось как и прежне.
Аватара пользователя
valyok666

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение valyok666 »

XXXler, посмотрите пример из ботвы BtnGroup.iss там токо кнопки вместо чекбоксов))
Аватара пользователя
XXXler

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение XXXler »





R.i.m.s.k.y., ладно не буду тебя мучить, может кто другой поможет! Всё равно спасибо тебе.



А вот код страницы про создание папки в меню Пуск:



Код:

Код: Выделить всё

////////////////////// SelectProgramGroupPage //////////////////////
  SelectStartMenuFolderBrowseLabel := TLabel.Create(WizardForm);
  with SelectStartMenuFolderBrowseLabel do begin
    AutoSize:=False;
    SetBounds(ScaleX(120), ScaleY(250), ScaleX(600), ScaleY(50));
    WordWrap:= True;
    Transparent:=True;
    Font.Name:= 'Georgia'
    Font.Size:= 10;
    Font.Color:=$FFFFFF;
    Font.Style:=[fsBold, fsItalic];
    Caption:= WizardForm.SelectStartMenuFolderBrowseLabel.Caption;
    Parent := WizardForm;
  end;                            
  GroupEditLabel := TLabel.Create(WizardForm);
  with GroupEditLabel do begin
    AutoSize:=False;
    SetBounds(ScaleX(127), ScaleY(308), ScaleX(446), ScaleY(15));
    WordWrap:= True;
    ShowAccelChar := False;
    Transparent:=True;
    Font.Name:= 'Arial'
    Font.Size:= 9;
    Font.Color:=$FFFFFF;
    Font.Style:=[fsBold];
    Caption := MinimizePathName(WizardForm.GroupEdit.Text, GroupEditLabel.Font, GroupEditLabel.Width);
    Parent := WizardForm;
  end;
  NoIconsCheck:=BtnCreate(WizardForm.Handle,ScaleX(75),ScaleY(430),ScaleX(28),ScaleY(28),ExpandConstant('{tmp}\CheckBox.png'),8,True);
  BtnSetEvent(NoIconsCheck,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));
  BtnSetEvent(NoIconsCheck,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
  BtnSetCursor(NoIconsCheck,GetSysCursorHandle(32649));
  NoIconsLabel := TLabel.Create(WizardForm);
  with NoIconsLabel do begin
    AutoSize:=False;
    SetBounds(ScaleX(115), ScaleY(437), ScaleX(275), ScaleY(17));
    OnClick:= @NoIconsLabelClick;
    Cursor:= CrHand;
    Transparent:=True;
    Font.Name:= 'Georgia'
    Font.Size:= 10;
    Font.Color:=$FFFFFF;
    Font.Style:=[fsBold,fsItalic];
    Caption := WizardForm.NoIconsCheck.Caption;
    Parent := WizardForm;
  end;
  WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
  WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text;
  WizardForm.GroupEdit.OnChange := @GroupChange;
////////////////////// SelectProgramGroupPage //////////////////////
Ответить

Вернуться в «Автоматическая установка приложений»