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

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

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

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

Цитата Polsta:



Допустим устанавливаем программу на диск С в папку Test, а в реестр нужно занести два значения

1-е это буква диска C

2-е это название папки в которую установили программу Test

[HKEY_LOCAL_MACHINE\SOFTWARE\Test program]

"Path"="C:\\"

"Directory"="Test"
Скрипты Inno Setup. Помощь и советы [часть 3]




Polsta,



Код:

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

[Registry]
Root: HKLM; Subkey: "Software\Test program"; ValueType: string; ValueName: Path; ValueData: {drive:{app}}\
Root: HKLM; Subkey: "Software\Test program"; ValueType: string; ValueName: Directory; ValueData: {code:ExtractFileName|{app}}
Аватара пользователя
El Sanchez

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

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

Цитата El Sanchez:



{code:ExtractFileName|{app}}
Скрипты Inno Setup. Помощь и советы [часть 3]




что за конструкция с вертикальной палочкой?
Аватара пользователя
Mafia_forever

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

Сообщение Mafia_forever »

Цитата R.i.m.s.k.y.:



что за конструкция с вертикальной палочкой?
Скрипты Inno Setup. Помощь и советы [часть 3]




Help -> Pascal Scripting -> Scripted Constants
Аватара пользователя
Raf-9600

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

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

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

Хочу представить вам свою наработку:



EXArchives.dll v.1.0b от VinTagE

Описание:

* Это распаковка архивов.

* 1 прогресс бар показывает распаковку архивов

* 2 прогресс бар показывает обработку архивов

* Сделал плавный индикатор (2 прогресс бар) обработки архивов

* Версия EXArchives.dll v.1.0b

Автор - VinTagE

-----------

Скачать


-----------



P.S.: Прошу протестировать и если найдёте какие нибудь ошибки, сообщите мне.

Спасибо за внимание Изображение
Аватара пользователя
Habetdin

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

Сообщение Habetdin »

Mafia_forever, пример:



Код:

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

[Components]
Name: unpack; Description: "Распаковать sound.mp3 в папку mp3"
[Files]
Source: Files\mp3\sound.mp3; DestDir: {app}\mp3; Components: unpack; Flags: ignoreversion

З.Ы.: чтение справки творит чудеса Изображение
Аватара пользователя
Sollar

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

Сообщение Sollar »

El Sanchez, как заставить срабатывать процедуру после клика по определенному объекту? потому что только после второго клика она работала

вот вопрос, а задачу я сделал по-другому, теперь мне интересно на будущее

и еще, можно ли в зависимых задачах писать разные groupdescription? если нет, то как это обойти? возможно ли такое?
Аватара пользователя
Mafia_forever

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

Сообщение Mafia_forever »

как сделть чтоб интлятор во время установки сам определил папку установки

Наприmер GTA San Andreas Usef Files

а если выбранна другая папка выходило сообщение

что не верная папка
Аватара пользователя
Habetdin

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

Сообщение Habetdin »

Mafia_forever, имя папки задано, страница выбора места установки отключена:



Код:

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

[Setup]
DisableDirPage=yes
DefaultDirName={pf}\Fixed Folder Name
Аватара пользователя
Kizekil

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

Сообщение Kizekil »

Здравствуйте!!! Изображение Можно задать вам пару вопросиков?Скажите пожалуйста как поменять цвет шрифта (там код какой то) .Как сделать чтоб отображалось время установки (без архивов и FreeArc,скачивал ISDone не помогло,можно код? Изображение )?. Зделать изображение на весь экран (только страница привествия) .Смотрел ваши комменты и видно что вы разбираетесь в инно сетуп Изображение .Надеюсь ответите!!!С уважением,Kizekil!!!
Аватара пользователя
insombia

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

Сообщение insombia »

Kizekil
Цитата:



Как сделать чтоб отображалось время установки (без архивов и FreeArc,скачивал ISDone не помогло,можно код?




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


[CustomMessages]

rus.hour= часов

rus.min= мин

rus.sec= сек


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


type

TTimerProc = procedure(HandleW, Msg, idEvent, TimeSys: LongWord);



var

StartInstall: Integer;

TimeLabel: TLabel;

TimerID: Longword;



function GetTickCount: DWord; external 'GetTickCount@kernel32';

function WrapTimerProc(callback: TTimerProc; Paramcount: Integer): longword; external 'wrapcallback@files:innocallback.dll stdcall';

function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): longword; external 'SetTimer@user32';

function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32 stdcall delayload';



Function cm(Message: String): String; Begin Result:= ExpandConstant('{cm:'+ Message +'}') End;



Function TicksToTime(Ticks: DWord; h,m,s: String; detail: Boolean): String;

Begin

if detail then {hh: mm:ss format}

Result:= PADZ(IntToStr(Ticks/3600000), 2) +':'+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +':'+ PADZ(IntToStr(Ticks/1000 - Ticks/1000/60*60), 2)

else if Ticks/3600 >= 1000 then {more than hour}

Result:= IntToStr(Ticks/3600000) +h+' '+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +m

else if Ticks/60 >= 1000 then {1..60 minutes}

Result:= IntToStr(Ticks/60000) +m+' '+ IntToStr(Ticks/1000 - Ticks/1000/60*60) +s

else Result:= Format('%.1n', [Abs(Ticks/1000)]) +s {less than one minute}

End;



procedure GetTime(HandleW, Msg, idEvent, TimeSys: LongWord);

var Remaining: Integer;

begin

with WizardForm.ProgressGauge do begin

if position > 0 then Remaining:= trunc((GetTickCount - StartInstall) * Abs((max - position)/position))

TimeLabel.Caption:= 'Осталось ждать: ' + TicksToTime(Remaining, cm('hour'), cm('min'), cm('sec'), false)

if (Remaining = 0) then TimeLabel.Caption:= 'Завершение...'

end;

end;



procedure InitializeWizard();

begin

TimeLabel:= TLabel.Create(WizardForm)

TimeLabel.SetBounds(ScaleX(0), ScaleY(80), ScaleX(457), ScaleY(20));

TimeLabel.AutoSize:= False

TimeLabel.Transparent:= True;

TimeLabel.Parent:= WizardForm.InstallingPage;

end;



procedure CurStepChanged(CurStep: TSetupStep);

begin

If CurStep = ssInstall then

begin

StartInstall:= GetTickCount

TimerID:= SetTimer(0,0, 500, WrapTimerProc(@GetTime, 4))

end;

end;



procedure DeinitializeSetup();

begin

KillTimer(0, TimerID)

end;
Ответить

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