Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 5]
А кто-нибудь знает, как решить такую проблему: во время упаковки файлов в архив окно Inno Setup зависает (как-бы ждёт завершения выполнения dll, которая выполняет упаковку) и отвисает только тогда, когда заканчивается добавление файлов в архив... Информация в окне во время добавления файлов не меняется, и окошко даже нельзя двигать...
Помогите, пожалуйста, разобраться!
Посмотрите на скрин который прикрепил.
1. Как переместить слова или как цвет шрифта поменять?
напишите код
Mailchik
04-09-2012, 11:26
spice, НазваниеЛейбла.Left := ScaleX(10);
НазваниеЛейбла.Font.Color := clLime;
А можно по подробнее я не понимаю че за название Лейбла?
куда их пихать?
Подскажите простой вариант распаковки внешнего архива 7z, без его копирования в темп или папку программы, если они находятся в папке Data рядом Setup-ом, а надо разархивировать в {app}\base\.
Пример моего скрипта, где с exe архивом получается, а с архивом 7z ничего не получается.
(В инете все описания для FreeArc хотя пишут что для 7zip реализовано.)
#define MyAppName "Распаковка внешнего архива"
#define MyAppVersion "1.0"
#define MyAppPublisher "Kompany, Inc."
#define MyAppURL "http://kompa.ru/"
#define MyAppExeName "MyProg.exe"
[Setup]
AppId={{1B1C88E6-3F4F-4FE0-908E-878500D113C8}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=c:\ExtractSoft
DefaultGroupName={#MyAppName}
AllowNoIcons=true
OutputDir=C:\Users\Programs\Desktop\prog
OutputBaseFilename=setup1.0
Compression=lzma
SolidCompression=true
UsePreviousAppDir=false
DirExistsWarning=no
[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: german; MessagesFile: compiler:Languages\German.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Types]
Name: full; Description: Полная установка
Name: compact; Description: Минимальная установка
Name: custom; Description: Выборочная установка; Flags: iscustom
[Components]
Name: program; Description: Основные файлы программы; Types: full compact custom; Flags: fixed
Name: ver1; Description: Версия 1; Types: full
Name: ver2; Description: Версия 2; Types: compact
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
Source: ..\..\..\..\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion; Components: program
Source: soft.docx; DestDir: {app}; Flags: ignoreversion; Components: program
Source: 7za.exe; DestDir: {tmp}; Flags: deleteafterinstall; Components: program
[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {group}\{cm:ProgramOnTheWeb,{#MyAppName}}; Filename: {#MyAppURL}
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon
[Run]
Components: ver1; Filename: {src}\data\1.exe; Parameters: -x -y -o{app}\base\; WorkingDir: {tmp}; Flags: shellexec waituntilidle
Components: ver2; Filename: {tmp}\7za.exe; Parameters: "7za e {src}\data\2.7z -y -o{app}\base\"; WorkingDir: {tmp}\2\; Flags: shellexec
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent
Johny777
04-09-2012, 13:28
Подскажите простой вариант распаковки внешнего архива 7z »
у меня есть такой пример
http://sendfile.su/663612
Ivan_009
04-09-2012, 13:35
Подскажите пожалуйста что нужно зделать чтобы текструированный прогрессбар работал на ssPostInstall. Дело в том что на
ssInstall он работает а на ssPostInstall нет... :(
Ivan_009
04-09-2012, 14:44
Как сделать так чтобы кнопка была без надписи....
Snoopak96
04-09-2012, 22:11
al1511,
Есть такая функция в IsDone, называется ISExec, упаковку в архив сделайте через неё, тогда инсталл будет откликаться на вненшии команды.
так же можно сделать упаковку через библиотеку IsExec.dll от Вольта или скрипт ExecAndWait (Вроде Серёга автор, не суть), в общем вашу упаковку надо запустить в консольном режиме.
Рекомендую первый вариант, тк прогрессбар будет более менее плавным (при тестовом прогоне не будет "плавности", а далее плавный).
у меня есть такой пример »Давно я такого не видел :flag:
Ivan_009,
1. Если юзал тот пример, что тебе скидывал, то только что проверял - пб рубит норм в ssPostInstall
2. Найди процедуру SetStateNewButtons и удали от туда эту строку:
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption)); <-- Эту
BtnSetVisibility(hNextBtn,Visible);
end;
А можно по подробнее я не понимаю че за название Лейбла?
куда их пихать? »Что тебе не понятно то?
Пример
WizardForm - Форма - Обязательный параметр
Лейблы
WelcomeLabel1 - Первый лейбл - то что начинается с "Вас приветствует мастер"
WelcomeLabel2 - Второй лейбл - то что начинается с "Программа установит"
Добавляешь WelcomeLabel1 либо WelcomeLabel2 после WizardForm через точку, получается
WizardForm.WelcomeLabel1.Left := ScaleX(10);
WizardForm.WelcomeLabel1.Font.Color := clLime;
WizardForm.WelcomeLabel2.Left := ScaleX(10);
WizardForm.WelcomeLabel2.Font.Color := clRed;
всё это помещаешь в процедуру, например InitializeWizard
procedure InitializeWizard();
begin
end;
и между
begin и end; вставляешь получившиеся строки
WizardForm.WelcomeLabel1.Left := ScaleX(10);
WizardForm.WelcomeLabel1.Font.Color := clLime;
WizardForm.WelcomeLabel2.Left := ScaleX(10);
WizardForm.WelcomeLabel2.Font.Color := clRed;
Окончательный итог
procedure InitializeWizard();
begin
WizardForm.WelcomeLabel1.Left := ScaleX(10);
WizardForm.WelcomeLabel1.Font.Color := clLime;
WizardForm.WelcomeLabel2.Left := ScaleX(10);
WizardForm.WelcomeLabel2.Font.Color := clRed;
end;
он у меня есть у меня ultra версия, в редакторе форм все на английском я не понимаю как с ним работать.
R.i.m.s.k.y.
05-09-2012, 07:26
В следующий раз для вставки сюда своего кода, открывай свой скрипт в блокноте (например Notepad++) и копипасть от туда сюда, а то ведь не дело видеть иероглифы подобны этим [Ia ana eiiiiiaiou oaiaeaoai?y?o ieieiaeuiui o?aaiaaieyi ea?u.']. »попробуй перед копированием переключись в инно на русский
попробуй перед копированием переключись в инно на русский »у меня и так всё на русском. что стандартный, что расширенный (v 5.5.1), копирует одинаково плохо.
может быть "Cкопировать как UBB код"?
Gnom_aka_Lexander
05-09-2012, 08:00
SatHan, нет. перед копированием переключи раскладку клавиатуры на русский.
MogilShik2007
05-09-2012, 08:09
Всем прив, подскажите скрипт, для удаления сохранений игры, чтобы запрос появлялся перед финишным окном, а не после)))
R.i.m.s.k.y.
05-09-2012, 09:37
MogilShik2007
procedure RD(Dir:string);
begin
Exec('cmd.exe', ' /c rd /S /Q ' + '"'+Dir+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
end;
procedure RF(file:string);
begin
Exec('cmd.exe', ' /c del /F /Q ' + '"'+file+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usUninstall then begin
if MsgBox('Удалить сохранения?',mbconfirmation, mb_yesno) = IDYES then RD(папка с сохранениями);
end;
end;
________________
он у меня есть у меня ultra версия, в редакторе форм все на английском я не понимаю как с ним работать. »
а) учи собачий
б) ставь InnoUltra (http://innoultra.ru/) от Gnom_aka_Lexander, в нем русифицированный расширенный редактор
он у меня и стоит! все я разобрался че там да как!
Ivan_009
05-09-2012, 12:59
Snoopak96, Не работает прогрессбар хоть убей :( вот код посмотри...
Snoopak96
05-09-2012, 16:36
Ivan_009,
И не будет, т.к. это PostInstall, а после установки что сделал?:
ISDoneError:=false;
until true;
ISDoneStop;
end;
ImgPBVisibility(ISDoneProgressBar1, False); <-- сам же и скрыл его после основной установки.
#ifdef SecondProgressBar
ImgPBVisibility(ISDoneProgressBar2, False);
#endif
ImgApplyChanges(WizardForm.Handle);
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
WelcomeLabel.Hide;
pr2.Hide;
WizardForm.Caption:= ExpandConstant('{cm:StatusRollback}');
pr1.Caption:= ExpandConstant('{cm:StatusRollback}');
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;В общем выделенную строку убирай.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.