Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Gnom_aka_Lexander
18-06-2011, 11:06
insombia, еще раз.Только сперва подумай - нет-ли причин, по которым от этой фишки быстро отказались? »
Я это не просто так написал. Идея оказалась неудачной, хоть и привлекательной. Когда идет тяжелая распаковка, и приэтом запущена сложная флешанимация - каковой является миниигра, комп может повиснуть насмерть. Плюс у этой длл-ки проблемы с выгрузкой из памяти, а автор сказал, что дальше развивать этот проект не будет, как бесперспективный.
Вот совершенно стороннее мнение:
1.выгрузка не происходит. идет запрос не тех функций
2. нужен установленный флеш плеер адобе
3. при нажатие 2мя кликами идет разворот данного видео
4 и т.д есть еще пару косяков
А как мне сделать чтоб установка шла в нижнем правом углу экрана?
И как мне вернуть надписи вот здесь 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;
Добрый день,
А скажите пожалуйста, можно ли сделать так, чтобы перед началом показа окна инсталлятора Плавно появлялась картинка а потом так же плавно исчезала?
Если да, то, пожалуйста, приведите пример скрипта, если это возможно.
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;
Большое спасибо!
Работает, не только с bmp, но и с другими форматами (проверил на jpg, png). А есть информация за что отвечает каждый параметр?
insombia
18-06-2011, 21:15
leshcat инфы нету я дал тебе код с inno setup gamescript generator
Привет,
Думаю тема уже поднималась, но мне не удалось найти примеров, проблема следующая,
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;
insombia
Ага. Тогда сам отвечу на свой вопрос:
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\WizardImage.bmp',X,Y,Z,0,255,Bool,$FFFF FF,10);
X = время появления
Y = время показа
Z = время затухания
0 = минимальная прозрачность
255 = максимальная прозрачность
Bool = видимо "Вырезать (считать прозрачным) цвет"
Остальное непонятно.
Еще вопрос:
Возможно сделать так, чтобы прогресс инсталляции был примерно такого рода (http://www.dateiliste.com/d3files/tools/StartSP/StartSP.gif)?
Тоесть маленькое, простое,% и время, можно без кнопок отмены или закрытия (вес файлов не так велик).
Лександер
Спасибо огромное, на 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);
по порядку:
хэндл (дескриптор) окошка мастера, путь к картинке, время появления, время показа, время исчезновения, минимальная прозрачность, максимальная прозрачность, считать прозрачным цвет, считающийся прозрачным цвет, хз
murlakatamenka
:) Спасибо. А что насчет этого (http://forum.oszone.net/post-1697261-1955.html)?
murlakatamenka
19-06-2011, 02:03
leshcat, а опишите подробнее процесс инсталляции
как я понял, запускается setup.exe и всё устанавливается в таком вот окошке без взаимодействия с пользователем. или так выглядит сам процесс установки после выбора папки установки и ... ?
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, в справку загляни. в частности - флаг эксклюзив.
insombia
Вы меня не так поняли :)
valyok666
19-06-2011, 17:01
здрасте)нужна помощь нужно сделать вместо дополнительные параметры "Установка моделей Steam" и модели брались из папки как в установке доп ПО как это прописать?
ещё один вопрос)кто нить знает файл в который надо прописать чтоб в меню сверху были???очень нужно помогите плиз
*чтобы сервера были в меню сверху
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.