Войти

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


Страниц : 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

spice
04-09-2012, 03:37
ок!

al1511
04-09-2012, 07:46
А кто-нибудь знает, как решить такую проблему: во время упаковки файлов в архив окно Inno Setup зависает (как-бы ждёт завершения выполнения dll, которая выполняет упаковку) и отвисает только тогда, когда заканчивается добавление файлов в архив... Информация в окне во время добавления файлов не меняется, и окошко даже нельзя двигать...
Помогите, пожалуйста, разобраться!

spice
04-09-2012, 10:18
Посмотрите на скрин который прикрепил.
1. Как переместить слова или как цвет шрифта поменять?
напишите код

Mailchik
04-09-2012, 11:26
spice, НазваниеЛейбла.Left := ScaleX(10);
НазваниеЛейбла.Font.Color := clLime;

spice
04-09-2012, 11:58
А можно по подробнее я не понимаю че за название Лейбла?
куда их пихать?

kuts85
04-09-2012, 13:06
Подскажите простой вариант распаковки внешнего архива 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;

SatHan
05-09-2012, 05:49
А можно по подробнее я не понимаю че за название Лейбла?
куда их пихать? »Что тебе не понятно то?
Пример
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;

spice
05-09-2012, 07:16
он у меня есть у меня ultra версия, в редакторе форм все на английском я не понимаю как с ним работать.

R.i.m.s.k.y.
05-09-2012, 07:26
В следующий раз для вставки сюда своего кода, открывай свой скрипт в блокноте (например Notepad++) и копипасть от туда сюда, а то ведь не дело видеть иероглифы подобны этим [Ia ana eiiiiiaiou oaiaeaoai?y?o ieieiaeuiui o?aaiaaieyi ea?u.']. »попробуй перед копированием переключись в инно на русский

SatHan
05-09-2012, 07:50
попробуй перед копированием переключись в инно на русский »у меня и так всё на русском. что стандартный, что расширенный (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, в нем русифицированный расширенный редактор

spice
05-09-2012, 12:20
он у меня и стоит! все я разобрался че там да как!

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