Войти

Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 [114] 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Vitek 07
24-08-2010, 19:49
tupica, вы об этом?

[Setup]
AppID=Dmaster

Имя записи в HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall.

А это имя отображаемое в Уст. и удалении программ

[Setup]
UninstallDisplayName={#MyAppName}

nik1967
25-08-2010, 13:39
Здравствуйте, уважаемые форумчане! Может кто знает, http://i9.fastpic.ru/big/2010/0823/2d/7e6f89a927e4d1055a5325133f23132d.png
Научите неуча. В идеале было бы, что бы цвет индикатора процентов менялся по мере прохождения полосы прогресса.
На ботве без проблем, но нужно штатными средствами Inno.

alex2010
26-08-2010, 00:36
не помню команду(вроде бы {localappdata} ) и секцию скрипта, которая установила бы папку вот сюда:
c:\Documents and Settings\Admin\Local Settings\Application Data\
подскажите пожалуйста??

маркузяка
26-08-2010, 00:47
nik1967, вот готовый скрипт



[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Files]
Source: files\*; DestDir: {app}; AfterInstall: ExtLog(); Flags: recursesubdirs

[Code]
var
ProgressLabel: TLabel;

procedure ExtLog();
begin
with WizardForm.ProgressGauge do begin
ProgressLabel.Caption:=IntToStr((Position-Min)/((Max - Min)/100)) + '%'
if (Position-Min)/((Max - Min)/100) > 50 then ProgressLabel.Font.Color:= clWhite
end
end;

procedure InitializeWizard;
begin
ProgressLabel:=TLabel.Create(WizardForm)
ProgressLabel.Top:= 4
ProgressLabel.Left:= 200
ProgressLabel.Caption:= '0%'
ProgressLabel.AutoSize:= True
ProgressLabel.Font.Color:= clBlue
ProgressLabel.Font.Style:= [fsBold]
ProgressLabel.Transparent:= True
ProgressLabel.Parent:= WizardForm.ProgressGauge
end;

nik1967
26-08-2010, 01:13
маркузяка,
Спасибо!

Vitek 07
26-08-2010, 07:57
alex2010,

{localappdata} - текущий профиль\Local Settings\Application Data

{userappdata} - текущий профиль\Application Data

{commonappdata} - All Users\Application Data

R.i.m.s.k.y.
26-08-2010, 14:31
У меня сложный вопрос: есть Rimpack, в нем есть AviSynth. Есть Coderim - ему нужен AviSynth, в нем есть, но если был предварительно поставлен Rimpack с AviSynth, то Coderim не поставит AviSynth (он есть в списке компонентов, но ключи реестра общие). Сносим Rimpack, ключи реестра и файлы AviSynth удаляются - программы из Coderim перестают работать. Как изменить деинсталлятор Rimpack так, что если стоит Coderim то AviSynth не сносить. Пока ограничился сообщением.

Dima2009
26-08-2010, 17:18
Подскажите пожалуйста, есть всетаки код на установку и удаление в таком виде...
http://s39.radikal.ru/i084/1008/3b/969d76215268.png
http://s42.radikal.ru/i098/1008/80/952924b635af.png

AJleKc
28-08-2010, 12:13
Подскажите пожалуйста, как убрать рамки вокруг кнопок !

Скрин:
http://ipicture.ru/uploads/100827/d4o67vRXgZ.gif

Нужно чбы было так:
http://ipicture.ru/uploads/100827/GIERGuIKVt.gif

geroinnn
28-08-2010, 19:26
Можно ли изменить цвет текста вот тут? http://s46.radikal.ru/i113/1008/a2/3f0e840090ee.jpg (http://www.radikal.ru)

AJleKc,
ISSkin в помощь

Habetdin
28-08-2010, 20:03
Dima2009, на ваших скринах - NSIS :)

Serega
28-08-2010, 22:26
Как изменить деинсталлятор Rimpack так, что если стоит Coderim то AviSynth не сносить. »
Первое, что приходит в голову, это заносим и удаляем ключи реестра через секцию , при удалении проверяем наличие файлов, если есть (допустим FileExists(FileName)), то не удаляем...

Можно ли изменить цвет текста »

WizardForm.TasksList.Font.Color := clRed;


Dima2009, на ваших скринах - NSIS »
да, но это не значит, что такое нельзя сделать в IS, всё не удобство в том, что всё нужно писать вручную... :) см. ниже

Подскажите пожалуйста, есть всетаки код »
код вам никто не даст, т.к. его нет, проблема в том, как я уже сказал выше вам придётся писать всё вручную, вот накидал пример, но он не 100% соответствует NSIS, но стартовой точкой может послужить:

[code]
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra64
InternalCompressLevel=ultra64
SolidCompression=yes

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: compiler:Examples\*; DestDir: {app}; BeforeInstall: Log; Flags: ignoreversion createallsubdirs recursesubdirs

[Code]
var
Memo: TNewMemo;
ISCustomPage: TWizardPage;

procedure Log;
begin
Memo.Lines.Add('Извлечение: ' + ExtractFileName(CurrentFileName));
end;

procedure CreateLog;
begin
{ создадим Memo куда будем записывать лог... }
Memo := TNewMemo.Create(WizardForm);
with Memo do
begin
Parent := WizardForm.InstallingPage;
SetBounds(WizardForm.InstallingPage.Left, ScaleY(75), WizardForm.InstallingPage.Width, ScaleY(140));
ReadOnly := True;
ScrollBars := ssVertical;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
CreateLog;
if CurPageID = ISCustomPage.ID then
begin
Memo.Parent := ISCustomPage.Surface;
Memo.Lines.Add('Готово');
with WizardForm do
begin
BackButton.Visible := True;
BackButton.Enabled := False;
CancelButton.Visible := True;
CancelButton.Enabled := False;
end;
end;
end;

procedure InitializeWizard();
begin
{ создадим копию страницы установки, которую покажем пользователю, чтоб он мог прочитать лог... }
ISCustomPage := CreateCustomPage(wpInstalling,
'Установка завершена', 'Установка успешно завершена');

with TNewProgressBar.Create(WizardForm) do
begin
Parent := ISCustomPage.Surface;
SetBounds(WizardForm.ProgressGauge.Left,
WizardForm.ProgressGauge.Top,
WizardForm.ProgressGauge.Width,
WizardForm.ProgressGauge.Height);
Max := 100;
Position := 100;
end;

with TNewStaticText.Create(WizardForm) do
begin
Parent := ISCustomPage.Surface;
AutoSize := False;
Caption := 'Готово';
ShowAccelChar := False;
SetBounds(ScaleX(0), ScaleY(16), ScaleX(417), ScaleY(16));
end;
end;

geroinnn
29-08-2010, 00:38
Serega, спасибо.
Ещё вопрос а можно ли изменитьцвет окошка?

Serega
29-08-2010, 11:28
а можно ли изменитьцвет окошка? »

WizardForm.TasksList.Color := clGreen;

geroinnn
29-08-2010, 13:39
Serega, спасибо, ещё последний вопрос. Пользуюсь вот этим скриптом

[Tasks]
Name: task1; Description: Óñòàíîâêà äîïîëíèòåëüíîãî ÏÎ:
Name: task1\task2; Description: DirectX
Name: task1\task3; Description: PhysX
Name: task1\task4; Description: VC Redist

[Run]
Filename: {src}\Redist\DirectX\DirectX.exe; Parameters: /silent; Tasks: task1\task2; Flags: waituntilterminated
Filename: {src}\Redist\PhysX.exe; Parameters: /Q; Tasks: task1\task3; Flags: waituntilterminated
Filename: {src}\Redist\VC Redist.exe; Parameters: /Q; Tasks: task1\task4; Flags: waituntilterminated

для установки дополнительного ПО после распаковки архивов, но установка происходит до распаковки архивов. Нельзя ли это исправить?

Serega
29-08-2010, 15:17
Нельзя ли это исправить? »
можно, просто распаковку архивов делайте до установки доп. ПО, т.е.:

[Run]
; именно здесь записываете распаковку ваших архивов, а уже потом всё, что идёт ниже...
Filename: {src}\Redist\DirectX\DirectX.exe; Parameters: /silent; Tasks: task1\task2; Flags: waituntilterminated
Filename: {src}\Redist\PhysX.exe; Parameters: /Q; Tasks: task1\task3; Flags: waituntilterminated
Filename: {src}\Redist\VC Redist.exe; Parameters: /Q; Tasks: task1\task4; Flags: waituntilterminated

geroinnn
29-08-2010, 18:35
Serega,
нет, у меня архивы не в .exe

R.i.m.s.k.y.
30-08-2010, 08:48
Первое, что приходит в голову, это заносим и удаляем ключи реестра через секцию [code], при удалении проверяем наличие файлов, если есть (допустим FileExists(FileName)), то не удаляем »
Tasks »
Ключей очень много, руками их подписывать в Code - идиотом сделаешься.

geroinnn
30-08-2010, 14:01
Можно ли изменить цвет текста вот тут ? http://s56.radikal.ru/i152/1008/d2/81741f7aa38c.png (http://www.radikal.ru)

moov1kk
31-08-2010, 17:44
я просто убираю эту надпись)




© OSzone.net 2001-2012