Войти

Показать полную графическую версию : Скрипты 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
18-06-2011, 11:06
insombia, еще раз.Только сперва подумай - нет-ли причин, по которым от этой фишки быстро отказались? »
Я это не просто так написал. Идея оказалась неудачной, хоть и привлекательной. Когда идет тяжелая распаковка, и приэтом запущена сложная флешанимация - каковой является миниигра, комп может повиснуть насмерть. Плюс у этой длл-ки проблемы с выгрузкой из памяти, а автор сказал, что дальше развивать этот проект не будет, как бесперспективный.
Вот совершенно стороннее мнение:
1.выгрузка не происходит. идет запрос не тех функций
2. нужен установленный флеш плеер адобе
3. при нажатие 2мя кликами идет разворот данного видео
4 и т.д есть еще пару косяков

LinkOFF
18-06-2011, 17:53
А как мне сделать чтоб установка шла в нижнем правом углу экрана?
И как мне вернуть надписи вот здесь http://i23.fastpic.ru/big/2011/0618/d3/46e35b5f3dfea42444a723d458d347d3.png (http://fastpic.ru/)
Пропали надписи после присоеденения скрипта isdone.Как вернуть

insombia
18-06-2011, 18:21
LinkOFF
механиковская установка
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure InitializeWizard();
begin
//Выносим кнопку "Отмена" на передний план
WizardForm.CancelButton.BringToFront;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling then
begin
WizardForm.BorderStyle:=bsDialog;
WizardForm.MainPanel.Visible:=False;
WizardForm.Width:=ScaleX(320);
WizardForm.Height:=ScaleY(127);
WizardForm.InnerNotebook.Left:=ScaleX(7);
WizardForm.InnerNotebook.Top:=ScaleY(7);
WizardForm.InnerNotebook.Width:=ScaleX(300);
WizardForm.StatusLabel.Left:=ScaleX(0);
WizardForm.StatusLabel.Top:=ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:=ScaleX(0);
WizardForm.FileNameLabel.Top:=ScaleY(17);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(37);
WizardForm.ProgressGauge.Left:=ScaleX(0);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:=ScaleX(122);
WizardForm.CancelButton.Top:=ScaleY(70);
WizardForm.Left:=GetSystemMetrics(16)-ScaleX(315);
WizardForm.Top:=GetSystemMetrics(17)-ScaleX(105);
WizardForm.Bevel.hide;
WizardForm.Bevel1.hide;
end;
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502;{Размер окна по горизонтали}
WizardForm.Height:=392;{Размер окна по вертикали}
WizardForm.Position:=poScreenCenter; {Возврат в исходное состояние}
end
end;

leshcat
18-06-2011, 18:28
Добрый день,

А скажите пожалуйста, можно ли сделать так, чтобы перед началом показа окна инсталлятора Плавно появлялась картинка а потом так же плавно исчезала?

Если да, то, пожалуйста, приведите пример скрипта, если это возможно.

insombia
18-06-2011, 19:48
leshcat

[Files]
Source: "C:\Users\Urban\Desktop\WizardImage.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

[Code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';

procedure InitializeWizard;
begin
ExtractTemporaryFile('WizardImage.bmp');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\WizardImage.bmp',1000,3000,1000,0,255,F alse,$FFFFFF,10);
end;

leshcat
18-06-2011, 20:45
Большое спасибо!

Работает, не только с bmp, но и с другими форматами (проверил на jpg, png). А есть информация за что отвечает каждый параметр?

insombia
18-06-2011, 21:15
leshcat инфы нету я дал тебе код с inno setup gamescript generator

rang3r
18-06-2011, 21:26
Привет,
Думаю тема уже поднималась, но мне не удалось найти примеров, проблема следующая,
DefaultDirName={reg:HKCU\Software\JetBrains\IntelliJ IDEA\93.94,|C:\Default}\plugins
Я пытаюсь сделать установочник для плагина к IDE, так вот мне надо определить ее местоположение, думаю это делать через реестр, нашел ключ прописал его , остался следующий момент,
как видно самая нижняя нода в пути "93.94" , это версия самой IDE, а она может быть у всех разной, можно ли как то разрулить этот момент через regexp ? Я попробовал вместо номера варсии поставить *, скомпилировал , запустил, на одной машине (Win7) это сработало, а на другой (WinXP) нет, подскажите как можно решить эту проблему ?

Gnom_aka_Lexander
18-06-2011, 21:32
rang3r, держи, взял путь из меню проводника "Открыть с помощью..." этот ключ не зависит от весии.
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={code:GetPath|{pf}\MyApp}\plugins

[code]
function GetPath(S: String): String;
var Path: String;
begin
RegQueryStringValue(HKCR, 'IntelliJIdeaProjectFile\shell\open\command', '', Path);
if Path <> '' then begin
StringChange(Path, '"%1"', '');
while Pos('"', Path) > 0 do StringChange(Path, '"', '');
Path:= ExtractFilePath(Path);
end;
If Path = '' then Path:= S;
Result:= Path;
end;

leshcat
18-06-2011, 22:07
insombia

Ага. Тогда сам отвечу на свой вопрос:
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\WizardImage.bmp',X,Y,Z,0,255,Bool,$FFFF FF,10);
X = время появления
Y = время показа
Z = время затухания
0 = минимальная прозрачность
255 = максимальная прозрачность
Bool = видимо "Вырезать (считать прозрачным) цвет"
Остальное непонятно.

leshcat
18-06-2011, 22:36
Еще вопрос:

Возможно сделать так, чтобы прогресс инсталляции был примерно такого рода (http://www.dateiliste.com/d3files/tools/StartSP/StartSP.gif)?

Тоесть маленькое, простое,% и время, можно без кнопок отмены или закрытия (вес файлов не так велик).

rang3r
18-06-2011, 22:38
Лександер
Спасибо огромное, на Win7 все без проблем заработало, на WinXP добавил только 1 строчку
StringChange(Path, '\bin', '');
Еще раз спасибо.

murlakatamenka
19-06-2011, 00:37
А есть информация за что отвечает каждый параметр?
есть
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\WizardImage.bmp',1000,3000,1000,0,255,F alse,$FFFFFF,10);
по порядку:
хэндл (дескриптор) окошка мастера, путь к картинке, время появления, время показа, время исчезновения, минимальная прозрачность, максимальная прозрачность, считать прозрачным цвет, считающийся прозрачным цвет, хз

leshcat
19-06-2011, 01:25
murlakatamenka
:) Спасибо. А что насчет этого (http://forum.oszone.net/post-1697261-1955.html)?

murlakatamenka
19-06-2011, 02:03
leshcat, а опишите подробнее процесс инсталляции
как я понял, запускается setup.exe и всё устанавливается в таком вот окошке без взаимодействия с пользователем. или так выглядит сам процесс установки после выбора папки установки и ... ?

leshcat
19-06-2011, 03:43
murlakatamenka

Схема такова:

1.Появляется картинка перед инсталлятором.
2.Начинается полноэкранное слайдшоу (которое идет вплоть до конца, тоесть нажатия кнопки exit) и нормальный вид инсталлятора дает выбирать что нужно, куда ставить итп.
3.Когда все выбрано, начинается "инсталляция". Вот тут то и должно появлятся вместо "грузного" стандартного вида это будущее маленькое, как описано в посте 1955 и приятное на вид окно, которое показывает % и прошедшее время инсталла(опционально).
4. Появляется Конечное меню инсталлятора в Нормальном виде, чтобы отметить 3-4 чекбокса и все.
5. При выходе еще разок в быстром темпе проиграются все слайды(все еще под вопросом).

:) вот как-то так.

insombia
19-06-2011, 12:12
как сделать чтобы здесь http://pic.4m.net.ua/images/22349666621408822799.jpg можно было выбрать только один компонент и вместо галочки кружочок был?

leshcat то что-то подобное на 7-zip если хочеш вот код на него

procedure CurStepChanged(CurStep: TSetupStep);
var
res:Integer;
app, arc, dest:string;
begin
If CurStep=ssPostInstall
then
begin
app:=ExpandConstant('{src}')+'\7za.exe';
arc:=ExpandConstant('{src}')+'\ARC.7z';
dest:=ExpandConstant('{app}');
Exec(app, 'x "'+ arc + '" -y -o"'+ dest + '"', '', SW_SHOWNORMAL, ewWaitUntilTerminated, res);
end;
end;

Gnom_aka_Lexander
19-06-2011, 13:11
insombia, в справку загляни. в частности - флаг эксклюзив.

leshcat
19-06-2011, 16:03
insombia

Вы меня не так поняли :)

valyok666
19-06-2011, 17:01
здрасте)нужна помощь нужно сделать вместо дополнительные параметры "Установка моделей Steam" и модели брались из папки как в установке доп ПО как это прописать?

ещё один вопрос)кто нить знает файл в который надо прописать чтоб в меню сверху были???очень нужно помогите плиз

*чтобы сервера были в меню сверху




© OSzone.net 2001-2012