Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
R.i.m.s.k.y.
16-10-2010, 11:59
мне не абы как, мне именно как на скрине надо »
[Tasks]
Name: dop; Description: Дополнительное программное обеспечение; GroupDescription: Системные
Name: dop\DirectX; Description: Обновить DirectX;
Name: dop\vcredist; Description: Обновить vcredist;
[Run]
Filename: {src}\DXSetup.exe; Parameters: /SILENT; Flags: skipifdoesntexist postinstall; StatusMsg: Устанавливается DirectX; Tasks: dop\DirectX
Filename: {src}\vc_redist.exe; Parameters: /SILENT; Flags: skipifdoesntexist postinstall; StatusMsg: Устанавливается Visual C++ Redistributable; Tasks: dop\vcredist
R.i.m.s.k.y., спасибо большое, я уже хотел из левого скрипта делать =)
R.i.m.s.k.y.
16-10-2010, 12:22
спасибо большое, »
Давим кнопку "полезное сообщение". Рад помочь!
я уже хотел из левого скрипта делать »
Надо понимать чего пишете а не бездумно копировать чужое. Вы бы вместо того, чтобы обезъянничать скрипты сами сели да почитали в помощи что значат те функции, что есть в скрипте. За то и пинаю, не потому что у меня "велосипеда нет", а за бездумство Ваше.
Всем привет! Может кто знает ответ?
Что за глюк, ставлю в скрипте WizardForm.GroupEdit.Color:=clGray; WizardForm.GroupEdit.Font.Color:=clblack;
Цвет конечно меняется, но когда ставишь галку на чекбоксе (Не создавать папку в меню Пуск) цвет GroupEdit меняется на другой (и цвет текста также).
Как сделать так, чтобы цвет GroupEdit оставался clGray и цвет текста также не менялся?
dimon135
17-10-2010, 12:01
помогите пожалуйста.Я сделал инсталятор, решил проверить,но при начале распаковки .arc файлов пишет"FreeArc вернул код ошибки: -1
Возможно, архив Data4.arc повреждён или недостаточно места на диске назначения."
Вот часть скрипта:
[Files]
;Source: *.arc; DestDir: {app}; Flags: nocompression
Source: C:\Program Files\Electronic Arts\Need For Speed:Shift\unarc.dll; DestDir: {tmp}; Flags: dontcopy deleteafterinstall
Source: C:\Program Files\Electronic Arts\Need For Speed:Shift\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\Program Files\Electronic Arts\Need For Speed:Shift \Data4.arc; DestDir: {app}; Flags: nocompression
[UninstallDelete]
Type: filesandordirs; Name: {app}
[Code]
const
Archives = 'C:\Program Files\Electronic Arts\Need For Speed:Shift\Data4.arc';
PM_REMOVE = 1;
CP_ACP = 0; CP_UTF8 = 65001;
oneMb = 1048576;
И еше вопрос:как добавить несколько архивов в этой строчке:Archives = 'C:\Program Files\Electronic Arts\Need For Speed:Shift\Data4.arc'; ?
Всем доброго времени суток.
Вопрос. Как сделать что-бы инсталлятор запустился без вопросов, я пишу так:
[Setup]
DisableWelcomePage=yes
DisableDirPage=yes
DisableFinishedPage=yes
DisableProgramGroupPage=yes
DisableReadyMemo=yes
DisableReadyPage=yes
DisableStartupPrompt=yes
Но все равно появляется вопрос "Нажмите установить чтобы продолжить"
В шапке темы есть пример, показывающий как растянуть стандартную картинку на всю страницу инсталлятора. Мне нужен пример, показывающий как вставить собственную картинку (с возможностью изменять размеры, можно и без изменения…). Желательно пример с работающим кодом… Если есть у кого такой код, буду премного благодарен!
Всем доброго времени суток.
Вопрос. Как сделать что-бы инсталлятор запустился без вопросов »
ivsatel, если надо, чтобы совсем без диалогов, пример:
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Files]
Source: "C:\My Program\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[_Code] // убирает самую первую страницу, перед применением не забудьте убрать штрих...
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
SendMessage(WizardForm.NEXTBUTTON.Handle, 513, 0, 0)
SendMessage(WizardForm.NEXTBUTTON.Handle, 514, 0, 0)
end;
end;
В инсталляторах выше версии Inno Setup 5.3.7 работать не будет!
THE GUILTY GOD
17-10-2010, 13:01
Подскажите что надо прописать в командной строке чтобы сжать с помощью прекомпрессора REP.exe
И почему когда я сжимаю с помощью precomp эффекта сжатия никокого.
Очень надо.
Swotch, Вот это окно не убирается:
http://saveimg.ru/thumbnails/17-10-10/d5ffcecd59bce3bf63713b052301ec6c.png (http://saveimg.ru/show-image.php?id=715eb53bf33de8021073ee0b0a9c2f3c)
Swotch, Вот это окно не убирается: »
Повторюсь, в инсталляторах выше версии Inno Setup 5.3.7 (http://files.jrsoftware.org/is/5/isetup-5.3.7.exe) работать не будет. С чем связан сей недостаток не знаю. !
Тогда перефразирую вопрос, можно ли указать что инсталляция изначальна будут в режиме /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-
dimon135
17-10-2010, 13:58
помогите пожалуйста.Я сделал инсталятор, решил проверить,но при начале распаковки .arc файлов пишет"FreeArc вернул код ошибки: -1
Возможно, архив Data4.arc повреждён или недостаточно места на диске назначения."
Вот часть скрипта:
[Files]
;Source: *.arc; DestDir: {app}; Flags: nocompression
Source: C:\Program Files\Electronic Arts\Need For Speed:Shift\unarc.dll; DestDir: {tmp}; Flags: dontcopy deleteafterinstall
Source: C:\Program Files\Electronic Arts\Need For Speed:Shift\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\Program Files\Electronic Arts\Need For Speed:Shift \Data4.arc; DestDir: {app}; Flags: nocompression
[UninstallDelete]
Type: filesandordirs; Name: {app}
[code]
const
Archives = 'C:\Program Files\Electronic Arts\Need For Speed:Shift\Data4.arc';
PM_REMOVE = 1;
CP_ACP = 0; CP_UTF8 = 65001;
oneMb = 1048576;
И еше вопрос:как добавить несколько архивов в этой строчке:Archives = 'C:\Program Files\Electronic Arts\Need For Speed:Shift\Data4.arc'; ?
Тогда перефразирую вопрос, можно ли указать что инсталляция изначальна будут в режиме /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- »
Я так понимаю вам нужен тихий инсталлятор, при устаноке без отображения диалоговых окон!
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Files]
Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
[_Code]
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
SendMessage(WizardForm.NEXTBUTTON.Handle, 513, 0, 0)
SendMessage(WizardForm.NEXTBUTTON.Handle, 514, 0, 0)
end
end;
Предварительно удалить все новые версии Inno Setup, поставить версию Inno Setup 5.3.7 (http://www.oszone.net/go.php?url=http://files.jrsoftware.org/is/5/isetup-5.3.7.exe). Взять предложенный мной пример, скопировать код в окно инсталлятора( убрать штрих _ в начеле секции [Code]), скомпилировать и проверить установку! Инсталлятор должен получиться тихий, без диалоговых окон!
Возможно я вас не правильно понимаю...
THE GUILTY GOD
17-10-2010, 17:02
Народ подскажите как с помощью precomp сжать всю папку, а то у меня только получается сжать каждый файл по отдельности
Здравствуйте, читал, читал форум и не нашел своих ответов, данным делом никогда не занимался, поэтому, если можно, расскажите поподробней.
1. Как сделать, чтобы setup не выгружал из себя файл, а копировал при запуске, например файлы-видео;
2. Как указать директорию выгрузки файла, которая на разных машинах может быть разной, но имеет имя со схожем началом;
3. Как при выгрузке файлов .dll сделать их регистрацию.
Заранее большое спасибо!!!
ArtemYa,
Когда запущен Inno Setup Compiler, нажми клавишу F1. Много чего интересного узнаешь.
1. [Files] section
Flags
external
This flag instructs Inno Setup not to statically compile the file specified by the Source parameter into the installation files, but instead copy from an existing file on the distribution media or the user's system. See the Source parameter description for more information.
2. Там же: Constants
3. Там же: Pascal Scripting: RegisterServer
Prototype:
procedure RegisterServer(const Is64Bit: Boolean; const Filename: String; const FailCriticalErrors: Boolean);
Description:
Registers the DLL/OCX with the specified filename. If Is64Bit is True, the DLL/OCX will be loaded as a 64-bit image and registered in a 64-bit process. If FailCriticalErrors is True, the system will not display any critical-error-handler message boxes. Raises an exception if not successful.
Example:
begin
// Register hhctrl.ocx located in the System directory.
RegisterServer(Is64BitInstallMode, ExpandConstant('{sys}\hhctrl.ocx'), False);
end;Because we specify Is64BitInstallMode in the first parameter, it will register the 64-bit OCX in the 64-bit System directory when Setup is running in 64-bit mode. Otherwise, it will register the 32-bit OCX in the 32-bit System directory.
THE GUILTY GOD,
А ты темой не ошибся?
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
R.i.m.s.k.y.
18-10-2010, 13:21
Когда запущен Inno Setup Compiler, нажми клавишу F1. »
+стопиццот!
А еще в шапке лежит русский F1!
кто нибудь знает как сделать окно распаковки как у механиков?
Imitri7,
[_Code]
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(330);
WizardForm.Top:=GetSystemMetrics(17)-ScaleX(110);
end;
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502;{Размер окна по горизонтали}
WizardForm.Height:=392;{Размер окна по вертикали}
WizardForm.Position:=poScreenCenter; {Возврат в исходное состояние}
end
end;
nik1967, R.i.m.s.k.y., спасибо большое!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC