Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Vitek 07
24-08-2010, 19:49
tupica, вы об этом?
[Setup]
AppID=Dmaster
Имя записи в HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall.
А это имя отображаемое в Уст. и удалении программ
[Setup]
UninstallDisplayName={#MyAppName}
Здравствуйте, уважаемые форумчане! Может кто знает, 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;
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
Подскажите пожалуйста, как убрать рамки вокруг кнопок !
Скрин:
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 :)
Как изменить деинсталлятор 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, спасибо.
Ещё вопрос а можно ли изменитьцвет окошка?
а можно ли изменитьцвет окошка? »
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
для установки дополнительного ПО после распаковки архивов, но установка происходит до распаковки архивов. Нельзя ли это исправить?
Нельзя ли это исправить? »
можно, просто распаковку архивов делайте до установки доп. ПО, т.е.:
[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)
я просто убираю эту надпись)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.