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

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

Автор: painter7
Дата сообщения: 17.03.2015 18:43
RussaKKinG, смотри что ты там на дефайнил, 5.5.1.ee2 (u) компилит как надо, запускается тоже.

Пофиксил под себя только это:
Код:
#define GameFiles "Game"
#define SoftFiles "Soft"
OutputDir=Output
Автор: Xom9I4oK
Дата сообщения: 17.03.2015 21:01
У меня 2 вопроса:
1) Как сделать так, чтобы перед установкой спрашивался рандомно один из заранее прописанных мной вопросов (смысл тот же, что и с паролем, только тут будут загадки).
2) Можно ли искать в по реестру, если известно, что имя параметра где-то глубоко запрятано в HKLM\System по имени параметра (исходя из того что оно уникально). У меня не получилось.
Автор: Solomon_Kane_2015
Дата сообщения: 17.03.2015 22:30
Подскажите пожалуйста. Есть инстралятор с автоопределением папки установки. Но, боюсь, в моем случае путь в реестре может быть разный в зависимости от того, какая винда (х64 или х32). Как мне сделать так, чтобы в случае отсутствия пути в реестре, искался тот путь, который подходит к винде по битности. Заранее спасибо.
Автор: dodakaedr
Дата сообщения: 18.03.2015 00:58
Solomon_Kane_2015
используйте IsWin64

Код: [Setup]
AppName=App
AppVersion=1.0
DefaultDirName={code:GetInstallDir}

[Code]
function GetInstallDir(const Default: String): String;
begin
if IsWin64 then
Result := ExpandConstant('{pf}\Is64bit')
else
Result := ExpandConstant('{pf}\Is32bit');
end;
Автор: LevaMaks
Дата сообщения: 18.03.2015 02:13
Подскажите пожалуйста, как сделать, чтобы после установки Репака, автоматически перекидывало на сайт игры. Может есть пример скрипта?
Автор: Solomon_Kane_2015
Дата сообщения: 18.03.2015 12:55
dodakaedr, огромное спасибо за помощь. Но никак не могу понять, как пути в реестре правильно вставить в код, чтобы и на х64, и на х32 папка установки всегда определялась по реестру правильно. Помогите мне пожалуйста с этим, очень прошу.
Вот моя часть кода с путем реестра для х64 винды

Код:
[Setup]
AppName=App
AppVersion=1.0
DefaultDirName={code:GetInstallDir}


Код:
function GetInstallDir(Dir: string): string;
begin
Dir := '';
RegQueryStringValue(HKLM, 'Software\Wow6432Node\Rockstar Games\EFLC','InstallFolder', Dir);
Result := Dir;
end;
Автор: dodakaedr
Дата сообщения: 18.03.2015 13:26
Solomon_Kane_2015
Пробуйте так

Код: [Setup]
AppName=App
AppVersion=1.0
DefaultDirName={code:GetInstallDir}

[Code]
function GetInstallDir(Dir: string): string;
begin
Dir := '';
if IsWin64 then begin
RegQueryStringValue(HKLM, 'Software\Wow6432Node\Rockstar Games\EFLC','InstallFolder', Dir);
if Dir <> '' then RemoveBackslash(Dir) else Result := ExpandConstant('{pf}\App');
end else begin
RegQueryStringValue(HKLM, 'Software\Rockstar Games\EFLC','InstallFolder', Dir);
if Dir <> '' then RemoveBackslash(Dir) else Result := ExpandConstant('{pf}\App');
end;
end;
Автор: Solomon_Kane_2015
Дата сообщения: 18.03.2015 15:35
dodakaedr, к сожалению, строка пути установки в инсталяторе пуста
Автор: CUTA
Дата сообщения: 18.03.2015 20:59
Возможно ли сделать полностью тихий (скрытый) инстал?
Автор: dodakaedr
Дата сообщения: 18.03.2015 21:14
CUTA
ключ /VERYSILENT
Автор: CUTA
Дата сообщения: 18.03.2015 21:25
dodakaedr

Цитата:
ключ /VERYSILENT

Без ключа сам инстал.
Автор: dodakaedr
Дата сообщения: 18.03.2015 21:45
CUTA
функция InitializeSetup с результатом False, но смотря для чего. Если полный стандартный функционал то наверное никак.
Автор: CUTA
Дата сообщения: 18.03.2015 21:56
dodakaedr

Цитата:
Если полный стандартный функционал то наверное никак.

Понял, спасибо.
Автор: Aleksandr N
Дата сообщения: 19.03.2015 13:08
Поскажите.
Решил создать инсталятор. Хочу чтобы при старте интсталятора приложенияпроверялось-бы запущена ли копия устанавливаемого приложения а если запущено то инсталятор его сам закрывал.
Как это можно сделать?
Спасибо.
Автор: painter7
Дата сообщения: 19.03.2015 13:41
CUTA, при желании можно, но вижу в этом только нехороший умысел, вам не сюда.

Цитата:
Хочу чтобы при старте интсталятора приложенияпроверялось-бы запущена ли копия устанавливаемого приложения а если запущено то инсталятор его сам закрывал.

Если процесс приложения 32-х разрядный.
Автор: alloc222
Дата сообщения: 19.03.2015 13:57
Здравствуйте уважаемые форумчане. Подскажите как грамотно реализовать следующее:

Использую ISDone.

Задача:

Необходимо реализовать удаление временной папки после распаковки файлов и определенных манипуляций с ними.

Код:


Код:
if not ShowChangeDiskWindow (ExpandConstant('{cm:Disk2}'), ExpandConstant('{src}'),'Data-2.bin') then break;
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\Data-2.bin'), ExpandConstant('{app}\Temp'), 'eng', false, '123456', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISExec ( 1, 0, 0, ExpandConstant('{tmp}\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Modules\Ahkuilon.rvm" "{app}\Temp\Modules\Ahkuilon\*.*"'), ExpandConstant('{tmp}'), 'Запаковка архива Ahkuilon.rvm ...',false) then break;
if not ISExec ( 1, 0, 0, ExpandConstant('{tmp}\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Resources.rvr" "{app}\Temp\Resources\*.*"'), ExpandConstant('{tmp}'), 'Запаковка архива Resources.rvr ...',false) then break;
if not Exec2(ExpandConstant('cmd.exe'), ExpandConstant('/c rmdir /s /q {app}\Temp'), false) then break;
Автор: RussaKKinG
Дата сообщения: 20.03.2015 19:00
как сделать так что бы мод пак сам указывал игре игра (путь сам показывал,)
Я смотрел на форумах там нужен какой то ключ из реестра, я реестр открыл а дальше что???
Автор: AlekseyPopovv
Дата сообщения: 21.03.2015 08:39
Как перед удалением программы, экспортировать (сохранить) ветку из реестра в файл .reg на рабочий стол через процедуру "CurUninstallStepChanged"? Нужен способ именно через процедуру "CurUninstallStepChanged".

Добавлено:
CUTA

Цитата:
Возможно ли сделать полностью тихий (скрытый) инстал?


1 способ:
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=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;

2 способ:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result:=true;
end;

procedure WizardFormShow(Sender: TObject);
begin
WizardForm.NextButton.OnClick(nil);
end;

procedure InitializeWizard();
begin
with WizardForm do
begin
Left:=-10000;
Show;
OnShow := @WizardFormShow;
end;
end;
Автор: AlekseyPopovv
Дата сообщения: 21.03.2015 16:32
Как эту процедуру разделить на портабле и инсталлер:

procedure SettClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
Bus:
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf32}\{#MyAppCompany}')) + '{#MyAppName} {#Bus}';
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#MyAppName} {#Bus} Portable';
end;
Net:
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf32}\{#MyAppCompany}')) + '{#MyAppName} {#Net}';
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#MyAppName} {#Net} Portable';
end;
end;
end;

Если добавить if Installer.Checked then или if Portable.Checked then скрипт компилируется, но при запуске инсталлятора выдаёт ошибку:

Runtime Error (at 80:119):

Could not call proc.
Автор: LevaMaks
Дата сообщения: 24.03.2015 00:01
Ребята, подскажите! Столкнулся с такой проблемой: после изменения размеров кликабельной картинки, область кликабельности осталась прежней. Как увеличить область кликабельности? Заранее спасибо.
Автор: dodakaedr
Дата сообщения: 24.03.2015 19:02

Цитата:
Как увеличить область кликабельности?

Увеличить объект который используется в качестве области кликабельности
Автор: BUU
Дата сообщения: 25.03.2015 17:29
Всем привет, подскажите пожалуйста правильную команду для удаления файлов с определенным расширением?

У меня щас так, в RUN секции нужно

Filename: "{cmd}"; Parameters: "DEL""{app}\zone\common\*.tmp"""; StatusMsg: "{cm:removetmp}"; Flags: runhidden

Просто запускается cmd и висит в режиме ожидания команд, что еще можно сделать? спс заранее
Автор: dodakaedr
Дата сообщения: 25.03.2015 23:30

Цитата:
что еще можно сделать?


Код: [Setup]
AppName=MyApp
AppVersion=1.0
DefaultDirName={pf}\MyApp

[INI]
Filename: {app}\test.txt; Section: test; Key: param; String: 101;
Filename: {app}\test2.ini; Section: test; Key: param; String: 101;
Filename: {app}\test3.ini; Section: test; Key: param; String: 101;

[Run]
Filename: "{cmd}"; Parameters: "/Q /C Erase ""{app}\*.ini"""; StatusMsg: "Очистка папки";
Автор: BUU
Дата сообщения: 26.03.2015 02:14
dodakaedr
Спс большое, работает
Автор: nektoktoto
Дата сообщения: 26.03.2015 15:51
Всем привет!
Подскажите пожалуйста, как сделать так, чтобы чекбокс "Не создавать папку в меню "Пуск" всегда был отмечен и нельзя было бы это изменить?

А, все, извиняюсь,вопрос снят. Сделал проще:

procedure RedesignWizardForm;
begin
with WizardForm.NoIconsCheck do
begin
Checked := True;
State := cbChecked;
end; - Теперь он отмечен "по умолчанию"... А дальше, просто отключил эту страницу через DisableProgramGroupPage=yes
Автор: dodakaedr
Дата сообщения: 26.03.2015 18:29

Цитата:
Сделал проще:

Еще проще не создавать группу в секции [Icons]
Автор: CUTA
Дата сообщения: 27.03.2015 18:06
dodakaedr
Как можно осуществить следующие. При выполнении определённой задачи мне нужно например через AfterInstall прогресс бар добавлял сектор выполнения и потом другая задача.
Если это не возможно то как можно сделать анимацию из стандартного прогресс бара.
Автор: dodakaedr
Дата сообщения: 27.03.2015 18:31
CUTA

Цитата:
другая задача

Это какая? Допишите её в ту же процедуру.
Автор: CUTA
Дата сообщения: 27.03.2015 18:36
dodakaedr

Цитата:
Это какая?

Любая из секции Run. Мне нужно точно двигать полосу прогресс бара при последовательном выполнении задач.
Автор: nektoktoto
Дата сообщения: 27.03.2015 20:00

Цитата:
Еще проще не создавать группу в секции [Icons]


Но дело в том, что ярлыки, создание которых я там прописал,мне создать надо! Ладно, проехали....dodakaedr, благодарю за отклик.

Добавлено:
Всех приветствую! Это опять я. Подскажите пожалуйста специалисты по Inno Setup и просто знающие люди :
В инсталляторе мода к игре нужно, чтобы путь установки модификации к игре менялся в зависимости от того, какая версия игры стоит у клиента "Steam" или Retail DVD версия. Кнопочки я сделал, а как прописать сюда, чтобы предлагаемый путь установки изменялся в зависимости от выбранной кнопки.
Надеюсь на вашу помощь! Выглядит у меня это так:
var
NewRadioButton1: TNewRadioButton;
NewRadioButton2: TNewRadioButton;

procedure RedesignWizardForm;
begin
{ NewRadioButton1 }
NewRadioButton1 := TNewRadioButton.Create(WizardForm);
with NewRadioButton1 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(120);
Width := ScaleX(417);
Height := ScaleY(17);
Caption := 'Retail (DVD версия)';
Checked := True;
TabStop := True;
end;

{ NewRadioButton2 }
NewRadioButton2 := TNewRadioButton.Create(WizardForm);
with NewRadioButton2 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(144);
Width := ScaleX(417);
Height := ScaleY(17);
Caption := 'Digital (Steam версия)';
end;

NewRadioButton1.TabOrder := 5;
NewRadioButton2.TabOrder := 6;

with WizardForm.NoIconsCheck do
begin
Checked := True;
State := cbChecked;
end;
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
end;

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

Предыдущая тема: Только инсталлятор


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