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

Ответить
 • Просмотры: 18
Аватара пользователя
El Sanchez

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

Сообщение El Sanchez »

Ivan_009, ок. В процедуре CurPageChanged2 перед InitializeSlideShow отключаете стиль, а после DeinitializeSlideShow включаете назад.



Код:

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

procedure CurPageChanged2(CurPageID: Integer);
begin
 If CurPageID=wpInstalling then
  begin
   SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) xor $2000000);
   InitializeSlideShow(WizardForm.Handle, 0, 100, scaleX(778), ScaleY(358), {#Animation}, {#Stretch});
   ...
   if CurPageID=wpFinished then
  begin
   ...
   DeinitializeSlideShow;
   SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000);
   ...
end;
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

LinkOFF, ну так. Это нужно писать туда, где ты распаковываешь архивы. теоретически можно вообще на запуске проверить их все на наличие, и если хоть одного не хватает - можно смело полностью отменять установку.
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

Цитата Serega:



LPCTSTR = PAnsiChar;

Одним словом, надо так:

Код:

[Files]

Source: "D:\Projects\mycomp\prod\Utils\mydll\Release\mydll.dll"; Flags: dontcopy

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


function somefunc(str: PAnsiChar): Integer; external 'somefunc@files:mydll.dll stdcall';
		
	
	
В общем докладываю: поменял на PAnsiChar вместо string - ничего не изменилось.. Может это тоже внесло конечно свою лепту..



Далее начал ковырять свою dll: вместо _declspec(dllexport) сделал экспорт через .def-файл - всё заработало!  [img]images/smilies/2009/rupor.gif[/img] 

в Depends пропал знак вопроса перед именем моей экспортируемой функции, не силен, не знаю, с чем это связано.. 



Как то так [img]images/smilies/new/smile.gif[/img]
Аватара пользователя
alert30

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

Сообщение alert30 »

Как сделать инсталлятор, что до подготовленной установки, распаковался шрифт (всего лишь 1 штук, к пути: C:\WINDOWS\Fonts) и сделать в подготовленном инсталляторе, чтоб все страницы изменялись шрифты.
Аватара пользователя
Johny777

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

Сообщение Johny777 »

Цитата Gnom_aka_Lexander:



Выглядеть будет так
Скрипты Inno Setup. Помощь и советы [часть 5]




Благодарю. Меня ещё интересует:

1. Как сделать чтобы компонент выбирался и блокировался? У меня получается делать только что-то одно Изображение

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



Грубо говоря, вот код, и последние два правила работают не так как нужно. Буду весьма признателен если подскажете как это скорректировать:




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




Код:

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

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[CustomMessages]
TypeOfInstallation=Тип установки:
Game=Игра
OnlyLocation=Только локализация
backup=Резервная копия
Text=Текст:
VoiceDiablo2=Озвучка Diablo 2:
VersionGame=Версия игры:
[Components]
Name: "Game"; Description: "{cm:TypeOfInstallation}"; Flags: disablenouninstallwarning;
Name: "Game\Full"; Description: "{cm:Game}"; Flags: exclusive disablenouninstallwarning; Types: full
Name: "Game\Lokal"; Description: "{cm:OnlyLocation}"; Flags: collapsed exclusive disablenouninstallwarning;
Name: "Game\Lokal\Backup"; Description: "{cm:backup}"; Flags: disablenouninstallwarning;
Name: "GameDiablo2"; Description: Diablo 2; Types: full
Name: "GameDiablo2\Text"; Description: "{cm:Text}"; Flags: collapsed; Types: full
Name: "GameDiablo2\VoiceD2"; Description: "{cm:VoiceDiablo2}"; Flags: collapsed; Types: full
Name: "Version"; Description: "{cm:VersionGame}"; Flags: collapsed disablenouninstallwarning;
[c0de]
var
OldEvent_ComponentsListClickCheck: TNotifyEvent;
procedure ComponentsListClickCheck(Sender: TObject);
var
  i : Integer;
begin
  for i := 0 to WizardForm.ComponentsList.ItemCount -1 do
  begin
    case WizardForm.ComponentsList.ItemCaption[i] of
      '1.04c', '1.05b' : // перечисляем через запятую надписи компонентов, которые зависят от GameLoD
      WizardForm.ComponentsList.ItemEnabled[i] := not (IsComponentSelected('GameLoD') or IsComponentSelected('Mod\PlugY'));
      '1.07', '1.08' : 
      WizardForm.ComponentsList.ItemEnabled[i] := IsComponentSelected('GameLoD') and not IsComponentSelected('Mod\PlugY');
      ExpandConstant('{cm:Text}'), ExpandConstant('{cm:VoiceDiablo2}'), ExpandConstant('{cm:VersionGame}') :
      WizardForm.ComponentsList.Checked[i] := IsComponentSelected('Game\Full');
      ExpandConstant('{cm:Text}'), ExpandConstant('{cm:VoiceDiablo2}'), ExpandConstant('{cm:VersionGame}') :
      WizardForm.ComponentsList.ItemEnabled[i] := not IsComponentSelected('Game\Full');
    end;
  end;
  OldEvent_ComponentsListClickCheck(Sender);
end;
procedure InitializeWizard();
begin
  with WizardForm.ComponentsList do
  begin
    OldEvent_ComponentsListClickCheck := OnClickCheck;
    OnClickCheck := @ComponentsListClickCheck;
    ItemEnabled[3]:=True;
  end;
end;
Аватара пользователя
alert30

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

Сообщение alert30 »

Johny777, а как же распаковка файлов до начала подготовительной установки?
Аватара пользователя
Johny777

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

Сообщение Johny777 »

Gnom_aka_Lexander, кроме того, что ниже, в коде больше нет упоминания про эту страницу:




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




Код:

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

procedure RedesignWizardForm;
begin
  ISCustomPage1 := CreateCustomPage(wpSelectProgramGroup, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');
  with ISCustomPage1.Surface do
  begin
    Name := 'ISCustomPage1';
  end;
end;
Аватара пользователя
alert30

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

Сообщение alert30 »

Схема такая через стрелки: запуск программы -> распаковка файлов, ну например шрифт MyriadPro Regular: C:\WINDOWS\Fonts -> начало подготовительной установки ("Вас приветствует Мастер установки...").



Вообще, надо сделать так, чтоб пользователи навсегда увидели инсталлятор со шрифтом типа MyriadPro Regular, а не стандартные. Хоть даже, что шрифт типа MyriadPro Regular не установлен.
Ответить

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