Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: BruteForce
Дата сообщения: 14.08.2007 11:51
[q][/q]
Vetal83

Спасибо за помощь!
Автор: chogo
Дата сообщения: 14.08.2007 12:00
Извиняюсь за не внимательнось, сам затупил
незаметил что в архив попали unins000.dat и unins000.exe соответственно он их перезаписывал
Автор: Victor_Dobrov
Дата сообщения: 14.08.2007 12:31
Corona Skin & Check System Requirements - Исправлена фатальная ошибка при Uninstallable=false. Код проверки системных требований можно отключать при сборке (для тех, кому нужен только скин). В итоге обложка весит всего 33Кб в минимальной конфигурации.
Автор: 4esnok
Дата сообщения: 14.08.2007 13:52
Люди помогите, делаю инсталятор для игры, вcтавляю фон, он всё нормально компилирует, но когда запускаю инсталлятор он сначала не отвечает, а потом не через некоторое время запускается, такое впечатление что он долго грузит временные файлы в темп, как это исправить? Немогу инсталятор с фоном никак сделать, так же и с музыкой HEPL!
Автор: Unc1e
Дата сообщения: 14.08.2007 14:18
Victor_Dobrov
Если ввести неверный пароль или серийник, а потом начать его стирать BackSpace`ом он стирает однин символ и возвращает на страницу Лиц. Соглашения. Так задумано или это баг?
Автор: Genri
Дата сообщения: 14.08.2007 14:31
4esnok -- вероятно, у тебя та же проблема, что и у BruteForce:
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=1240#11

Если используешь SolidCompression, то нужно учитывать одну особенность: если при обычной архивации, каждый файл пакуется отдельно, то при использовании SolidCompression все файлы пакуются подряд. В результате, чтобы вытащить например 8-ой по порядку файл, необходимо распаковать семь предыдущих (соответственно 50-й файл - распаковываются 49 предыдущих).

Проблема возникает при следующих настройках:
используется SolidCompression,
не используется флаг solidbreak,
в секции Files временные файлы распологаются после основных.

Вариантов решения есть несколько :
1. Не использовать SolidCompression (но это в некоторых случаях неприемлимо, так как сильно увеличивает размер инсталлятора)
2. Поместить файлы, которые требуются для работы самого инсталлятора в верх секции Files (тоже может быть не оптимальным при большом кол-ве файлов. имхо.).
3. Можно вне зависимости от положения временных файлов в секции Files, для этих файлов указать флаг solidbreak. Это даст команду инсталлятору при упаковке файлов начать новый поток. В результате инсталлятору при распаковке не потребуется распаковывать все предыдущие.

Unc1e -- это не баг. это фича. для удобства и защиты Шутка.
Автор: Victor_Dobrov
Дата сообщения: 14.08.2007 16:26
Corona Skin - убрал горячую клавишу BackSpace, которая была подвешена на кнопку 'Назад'. Извиняюсь.
Автор: Chuvakstepan
Дата сообщения: 14.08.2007 18:45
chogo
Посмотри внимательно на эту директиву! Мля, таких невидел: {app}test.exe
Автор: chogo
Дата сообщения: 14.08.2007 19:17
Chuvakstepan
UninstallDisplayIcon={app}\test.exe

это очепятка, спасибо что заметил, но проблема у меня была в другом, выше постами я написал в чём был затык.
Автор: Alex1985
Дата сообщения: 14.08.2007 19:25
Не получается создать иконку программы в панели быстрого запуска сразу для всех юзеров.
[more][Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
AllowNoIcons=yes
OutputBaseFilename=setup
Compression=none
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
Name: "{commonappdata}\Microsoft\Internet Explorer\Quick Launch\My Program"; Filename: "{app}\MyProg.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent[/more]
Скрипт создан мастером. никакие параметры окромя Compression=none и собственно предмета обсуждения, параметра {commonappdata} с {userappdata} не менялись. Но даже в таком виде задуманное не получается.
{userappdata} создаёт иконку, но только для текущего пользователя, а {commonappdata} не создаёт вообще. К слову сказать папки C:\Documents and Settings\All Users\Application Data\Microsoft\Internet Explorer\ не существует вообще, она создаётся только инсталлятором, но не смотря на это для всех юзеров ярлык не ставится.
Как решить?
Автор: 4esnok
Дата сообщения: 15.08.2007 00:02
Genri ОГРОМНОЕ СПАСИБО твои советы помогли!!! Терь я могу делать инсталы и с фоном и с музыкой!
Автор: boss911
Дата сообщения: 15.08.2007 00:29

Код: [Files]

Source: C:\Prog\File1.cfg; DestDir: {userappdata}
Source: C:\Prog\File2.cfg; DestDir: {userappdata}
Автор: Genri
Дата сообщения: 15.08.2007 10:19
boss911 -- только на конкретной машине или только на конкретной машине для конкретного пользователя ?
Код:
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Files]
Source: C:\Prog\File1.cfg; DestDir: {userappdata}; Check: CheckComputerName
Source: C:\Prog\File2.cfg; DestDir: {userappdata}

[Code]
function CheckComputerName(): Boolean;
var
str: string;
begin
Result:= Uppercase(GetComputerNameString) =
Uppercase('MyCompName');
end;
Автор: Chanka
Дата сообщения: 15.08.2007 11:42
Народ! Может мне кто-нибудь помочь? Здесь пример удаления файлов после удаления программы.
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=1075&limit=1&m=1#1
Т.е. если после удаления программы в папке остались какие-нибудь файлы или папки то появляется окно, которое предлагает их удалить. Так вот мне надо чтобы была возможность оставить какой-нибудь файл или папку. Например, мне надо оставить папку Save. Т.е. надо чтобы она не удалялась.
Автор: 3eJIeHb
Дата сообщения: 15.08.2007 11:58
[more=http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=1280#16]Люди, помогите. Мне нужно чтобы при запуске инстала он считывал значение из реестра и если значение больше значения AppVersion, то вадавал сообщение: "Вы устанавливаете более поздюю версию порграммы, чем стоит у вас на комьютере, вы желаете предварительно удалить её?" Кнопочки: Да Нет. При Да удаляет прогу и запускает инстал, при Нет закрывает инстал. Такое вообще реально сделать?[/more]
Кто нить поможет или нет?
Автор: omals
Дата сообщения: 15.08.2007 15:41
плз. хелп
в окне выбора Tasks
не выбрано ничего
нужно чтобы при нажатии Next просто ничего не устанавливалось
тоесть типа сделал Exit но диалога не нужно
можно как-то такое сделать?

думал как-то так

function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:=True;
if (CurPageID = wpSelectTasks) and not(IsTaskSelected('MZF') or IsTaskSelected('NCT')) then //есть два эти таска
begin
    // но как вот тут реализовать?
end;
end;
Автор: Genri
Дата сообщения: 15.08.2007 16:52
omals

Код:
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:=True;
if (CurPageID = wpSelectTasks) and not(IsTaskSelected('MZF') or IsTaskSelected('NCT')) then
begin
WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
end;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:= False;
end;
Автор: Kindly
Дата сообщения: 15.08.2007 16:53
chogo
Зачем указывать:
SourceDir=F:\test
Compression=zip // none

А так по идее скрипт должен работать правильно.
Автор: omals
Дата сообщения: 15.08.2007 17:06
2Genri
отлично
огромное спасибо

Автор: boss911
Дата сообщения: 15.08.2007 18:14
Genri

Цитата:
только на конкретной машине или только на конкретной машине для конкретного пользователя ?

Если сказать точнее, то на любой машине, но с конкретным именем пользователя и компьютера, то есть два обязательных параметра для проверки.

Припустим, что имя компьютера у меня Comp, а имя пользователя boss911, делаю следующие:

Код: [Files]
Source: C:\Prog\File1.cfg; DestDir: {userappdata}; Check: CheckComputerName
Source: C:\Prog\File2.cfg; DestDir: {userappdata}

[Cоde]
function CheckComputerName(): Boolean;
var
str: string;
begin
Result:= Uppercase(GetComputerNameString) =
Uppercase('Comp');
end;
Автор: Genri
Дата сообщения: 15.08.2007 18:34
boss911

Код:
function CheckComputerName(): Boolean;
begin
Result:= (Uppercase(GetComputerNameString) =
Uppercase('Comp')) and
(Uppercase(GetUserNameString) =
Uppercase('boss911'));
end;
Автор: boss911
Дата сообщения: 15.08.2007 19:22
Genri

Не получается, копируются сразу два файла:

Код: [Files]
Source: C:\Prog\File1.cfg; DestDir: {userappdata}; Check: CheckComputerName
Source: C:\Prog\File2.cfg; DestDir: {userappdata}
Автор: Genri
Дата сообщения: 15.08.2007 21:21
boss911 --

Код:
Source: C:\Prog\File1.cfg; DestDir: {userappdata}; Check: CheckComputerName
Source: C:\Prog\File2.cfg; DestDir: {userappdata}; Check: Not CheckComputerName
Автор: CrackMe
Дата сообщения: 15.08.2007 22:14
Здраствуйте, не мог ли бы вы мне помочь, я столкнулся с маленькой проблемой, которую решаю:
делаю инсталлер под плеер, нужно чтобы в параметре присутвувало 2 параметра Tasks: один ассоциация плеера с конкретным расширением, второе ассоциация плеера со всеми расширениями определённого типа (например ассоциация только с ави или со всеми типами видео, или аасоциация с мп3 или со всеми типами аудио)
Спасибо за понимание, я расчитываю на вашу помощь, заранее спасибо
Автор: boss911
Дата сообщения: 15.08.2007 23:49
Genri

Цитата:
boss911 --

Я рад, что тебя повеселил.
Извиняюсь, но я плуг в программировании, так что не додумался. Спасибо, все работает как я и хотел!
Автор: Kindly
Дата сообщения: 16.08.2007 11:54
CrackMe, в тасках указываешь соответсвующий флаг, который указываешь для ассоциаций в секции [Registry]. Далее при установке будут прописаны в реестр ассоциации в зависимости от выбора.
Автор: Genri
Дата сообщения: 16.08.2007 14:56
3eJIeHb
Цитата:
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=1280#16
Кто нить поможет или нет?
-- у меня сложилось впечатление, что эту проблему ты решил. Или я не прав ? На всякий случай :
Код:
[Setup]
AppName=My Program
AppVersion=3.6
AppVerName={#emit SetupSetting('AppName') + SetupSetting('AppVersion')}
DefaultDirName={pf}\My Program

[Files]
Source: MyProg.exe; DestDir: {app}

[Registry]
Root: HKLM; SubKey: Software\3eJIeHb MOD; ValueType: string; ValueName: Version; ValueData: {#SetupSetting("AppVersion")}; Flags: UnInsClearValue deletevalue

[Code]
function InitializeSetup(): Boolean;
var
ResultCode: Integer;
InstalledVersion: string;
PrevUninstExe: string;
begin
Result:=True;
If RegQueryStringValue(HKLM, 'Software\3eJIeHb MOD', 'Version', InstalledVersion) then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + '{#SetupSetting("AppName")}_is1', 'UninstallString', PrevUninstExe);
If InstalledVersion > '{#SetupSetting("AppVersion")}' then
begin
if MsgBox('Вы устанавливаете {#SetupSetting("AppName")} версии {#SetupSetting("AppVersion")}' + #10#13 +
'На компьютере уже установлена {#SetupSetting("AppName")} версии ' + InstalledVersion + #13#13 +
'Для продолжения установки необходимо удалить ранее установленную версию программы',
mbConfirmation, MB_YESNO) = idYes then
Exec(RemoveQuotes(PrevUninstExe), '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
else Result:= False;
end;
end;
end;
Автор: 3eJIeHb
Дата сообщения: 16.08.2007 15:04
Genri
СПС
Автор: CrackMe
Дата сообщения: 16.08.2007 16:55
Kindly
ну я пытался делать так:

Код: Root: HKLM; Subkey: "Software\Classes\.drc"; ValueType: string; ValueName: ""; ValueData: "Dirac Video file"; Flags: uninsdeletevalue ; Tasks: Associate with Dirac Video; Tasks: Associate With Most Video Files
Автор: omals
Дата сообщения: 16.08.2007 17:25
2CrackMe
а вот так не подойдет?

[Tasks]
Name: DiracVideo; Description: "Associate with Dirac Video";
Name: MostVideo; Description: "Associate With Most Video Files ";

[Registry]
Root: HKLM; Subkey: "Software\Classes\.drc"; ValueType: string; ValueName: ""; ValueData: "Dirac Video file"; Flags: uninsdeletevalue ; Tasks: DiracVideo MostVideo;

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.