PDA

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


Страниц : 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 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

Gnom_aka_Lexander
15-04-2011, 20:39
Сваял по просьбе (http://forum.oszone.net/post-1656096-1304.html), развитие темы вертикального статусбара, надеюсь понравится :) встроен ИсДоне.

LordSP, архив не битый, уже 70 человек скачало и никто не жаловался. архиватор, видимо битый у тебя :)

Переделал для игры ведьмак, приделал авторан, доработал страницу установки.Скачать (http://rghost.ru/5207832)

http://www.krinkels.ru/_fr/0/4690299.jpg
http://www.krinkels.ru/_fr/0/5605459.jpg
http://www.krinkels.ru/_fr/0/9198667.jpg
http://www.krinkels.ru/_fr/0/6200066.jpg
http://www.krinkels.ru/_fr/0/5462203.jpg

boss911
15-04-2011, 21:21
%userprofile%\Application Data\ПАПКА\ »
{userappdata}\ПАПКА
надо убрать возможность снять галочку "Запустить ПО" по оканчании установки, чтоб он это автоматом делал. »
[Run]
Filename: {app}\PROG.exe; Description: Запустить ПО; Flags: postinstall skipifsilent
чтоб он не создовал файлы деинсталяции unins000.exe unins000.dat »
[Setup]
Uninstallable=false

R.i.m.s.k.y.
15-04-2011, 21:40
И как его попросить чтоб он не создовал файлы деинсталяции unins000.exe unins000.dat »
[Setup]
Uninstallable=false

LordSP
15-04-2011, 22:47
Лександер,

Архив битый,перезалей....

victor2006
15-04-2011, 23:32
Всем привет.
Подскажите, пожалуйста, какую переменную надо использовать в секции [setup], чтобы при установке было произведено копирование файлов в директорию C:\Users\ИМЯ ПОЛЬЗОВАТЕЛЯ\Saved Games ?

Все переменные из справки ведут или в C:\Users\ ИМЯ ПОЛЬЗОВАТЕЛЯ \Documents или в «вариации» C:\Users\ ИМЯ ПОЛЬЗОВАТЕЛЯ \AppData
Спасибо.

R.i.m.s.k.y.
16-04-2011, 11:40
Сваял по просьбе, развитие темы вертикального статусбара »
щито это? скрин можно?
C:\Users\ ИМЯ ПОЛЬЗОВАТЕЛЯ \Documents »
а если отсечь?

s:=ExpandConstant('{userdocs}');
StringChangeEx(S, '\Documents', '', True);
StringChangeEx(S, '\Мои документы', '', True);


Мой вопрос:
как расшифровать эту запись:
DefaultDirName={code:FunctionRegPath|{pf}\Vmd}
где FunctionRegPath - это имя функции, возвращающей то, что надо.
Что значит | ?
Как это вообще работает?

LordSP
16-04-2011, 11:59
Ребят,помогите с прогресс баром,он неправильно отображается на всех страницах,увеличить то я его увеличил,а вот как сделать чтобы он оказался на своем месте,пожалуйста Хелп!!!

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

[Code]
procedure InitializeWizard();
begin
with WizardForm do
begin
ProgressGauge.Top:=ScaleY(88);
ProgressGauge.Left:=ScaleX(0);
ProgressGauge.Width:=ScaleX(413);
ProgressGauge.Height:=ScaleY(49);
ProgressGauge.Parent:= WizardForm;
end
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageId = wpInstalling then
begin
WizardForm.ProgressGauge.Show;
end
end;

R3Pa4eK
16-04-2011, 14:10
LordSP, ProgressGauge.Parent:= WizardForm.InstallingPage;

Gnom_aka_Lexander
16-04-2011, 14:27
R3Pa4eK, если ты заметил, то прогрессбар специально на визардформ вынесен был, тут в CurPageChanged нужно:
procedure CurPageChanged(CurPageID: Integer);
begin if CurPageId = wpInstalling then begin WizardForm.ProgressGauge.Show else WizardForm.ProgressGauge.Hide;
end;
end;

LordSP
16-04-2011, 15:37
R3Pa4eK, Лександер, ,Спасибо ребят,а то единственную переменную не добавил, и надо же,оказывается все просто,вот только разве к ProgressGauge.Parent:= WizardForm,можно добавлять переменные страниц? ProgressGauge.Parent:= WizardForm.InstallingPage (FinishingPage,WelcomePage)???

Gnom_aka_Lexander
16-04-2011, 15:53
Parent - расположение, можно указывать вообще чего душе угодно, хоть WizardForm.WizardSmallBitmapImage :)
Третий вариант, жду предложений и пожеланий:)
The Witcher - Ведьмак (http://rghost.ru/5210746)

LordSP
16-04-2011, 17:46
Лександер, Чуть не забыл,вот на примере,покажи как использовать свой шрифт в процессе установки,только отдельным независимым кодом,если можно пожалуйста :-)

ivsatel
16-04-2011, 17:52
Как избавиться от дописки в секции регистра [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
к любой программе дописывается _is1. А хотелось бы просто название программы.

Gnom_aka_Lexander
16-04-2011, 18:42
ivsatel, никак, эта "дописка" обязательна и пишется она не к программе, а к ИД программы, если он не указан, то используется название в качестве ИД, служит для того, чтобы если совершенно случайно будет устанавливаться программа с таким-же ИД, но другим названием, их ключи деинсталляции не перепутались. - будет дописано _is2

ivsatel
16-04-2011, 18:48
Лександер, А возможно ли как-то указать его? Имею в виду ID.

Gnom_aka_Lexander
16-04-2011, 19:01
ivsatel, в секции сетап:
AppID={{EE7C4A60-4568-459E-BDDB-D3100BF2BC1C} - ID игры ведьмак. очень желательно использовать оригинальный ID, потому что большинство официальных пачей ишут по нему то, что они должны пачить.
LordSP, пример (http://rghost.ru/3687005) использования внешнего шрифта

ivsatel
16-04-2011, 20:43
Лександер, получилось:
{EE7C4A60-4568-459E-BDDB-D3100BF2BC1C}_is1
Отключил запись в реестр инсталлятором. А возможно ли сделать те же записи только через [code] ?

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Prog]
"Language"="1049"
"DisplayName"="My Prog"
"DisplayVersion"="1.0.0"
"DisplayIcon"="C:\\Program Files\\My Prog\\My Prog.exe"
"UninstallString"="C:\\Program Files\\My Prog\\My Prog.exe"
"URLInfoAbout"="http://"

LordSP
16-04-2011, 21:02
Лександер, Спасибо!
Еще один вопросик,это посложнее: В этом скрипте как реализовать чтобы путь был взят из секции code,но при этом если нет записи о пути установки в реестре,выдывалось сообщение,что не найден путь,а также при этом проверялась версия,если ниже установленной,то выдавалось,что версия не соответствует:

[Setup]
AppName=GetDeviceInfo
AppVerName=GetDeviceInfo
DefaultDirName={code:GetInstallDir}

[Code]
Function GetInstallDir( AppID: String ): String; var dir: String; var ResultStr: String;
begin
RegQueryStringValue(HKCU, 'SOFTWARE\Matrix', 'Version', ResultStr);
ResultStr:='1.1.0'
RegQueryStringValue(HKCU, 'SOFTWARE\Matrix', 'Path', dir);
Result:= dir;
end;

function InitializeSetup(): Boolean;
begin
Result:= True;
if not RegValueExists(HKCU, 'SOFTWARE\Matrix', 'Version') then
begin
if not RegValueExists(HKCU, 'SOFTWARE\Matrix','Path') then
begin
MsgBox('Программа не найдена!', mberror, mb_ok);
Result:=False;
exit;
end
end
end;


Function GetInstallDir( AppID: String ): String; var dir: String; var ResultStr: String; begin RegQueryStringValue(HKCU, 'SOFTWARE\Matrix', 'Version', ResultStr); ResultStr:='1.1.0' RegQueryStringValue(HKCU, 'SOFTWARE\Matrix', 'Path', dir); Result:= dir; end; »
Вот тут ли можно,создать сообщение,еще можно ли сделать последовательный вывод сообщение,сначала о пути,а потом о версии,и можно одним сообщением,лучше рассмотреть 2 варианта.

Gnom_aka_Lexander
16-04-2011, 21:13
LordSP, Сборник скриптов (http://www.krinkels.ru/load/raznoe/inno_faq_v1_4/2-1-0-29) в в формате .chm от Krinkels; » в шапку лень заглянуть? там как раз есть ответ на твой вопрос, по остальным примерам в шапке тоже можно потыкать :)

LordSP
16-04-2011, 21:24
Лександер, Я уже и в шапке искал и в скриптах смотрел,не нашел к сожалению.
Еще такое ты случаем не обладаешь скриптом,который корректно без ошибок заменяет стандартное окно "О программе".. у меня был один,но после выхода из инсталлятора,либо завершения его работы,слышен звук ошибки.




© OSzone.net 2001-2012