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

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

Автор: sergey3695
Дата сообщения: 18.06.2014 10:54
999Kay666
вот вы писали, игра распаковывается по типу winrar'a(но её инстал сделан в инно). >>
в жопу .ini, работаем с реестром. Считываем изменения в реестре до и после установки (пример reg organizer) узнаем application id и считываем папку установки. возможно при условии если создается деинсталлятор. если не вынешь его сам залей на норм файл обменник этот сетап и что там и я сам сделаю. это не сложно сделать. хотябы скины выложи что выдал при сравнении двух снимков reg organizer.
nortem
а чем пользуешься при установке? isdone, стандартная установка и т.д.
Tapas77789 а что значит структура ini файла?
Автор: nortem
Дата сообщения: 18.06.2014 12:56
isdone чистый, арке архивы скрипт: http://rghost.ru/56443753
Автор: sergey3695
Дата сообщения: 18.06.2014 13:45
nortem

Код: Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and ISDoneError then // на финишной странице при ошибке
begin
WizardForm.FinishedLabel.Font.Color:= clRed; // смена цвета
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted); // смена сообщения на ошибку
end;
end;
Автор: nortem
Дата сообщения: 18.06.2014 13:53
Спасибо, ну а с ботвой то че делать? пятно на смалл аймаге

Добавлено:
И + при ошибе установки или распаковки как отсенить установку по

Добавлено:
Блин, WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted); // смена сообщения на ошибку на что менять?

Если так и оставить, то ничего не меняется
Автор: sergey3695
Дата сообщения: 18.06.2014 14:09
nortem ты установщик modern warfare (калда 4) делаешь?
Автор: Tapas77789
Дата сообщения: 18.06.2014 14:52
sergey3695
Цитата:
а что значит структура ini файла?

Не правильно выразился. Правильней сказать, какой формат INI файла?
Автор: sergey3695
Дата сообщения: 18.06.2014 16:55
Tapas77789
формат INI файла вбей в google.
nortem Вот накидал скриптик... (в твоем даже лазить нехочу хоть и понимаю что к чему. просто в данном случае проще занаво) и да смалл аймаге - долго не мог понять что за ересь. смейл имеджи или на англ лучше пиши. не обижайся но это прям что-то с чем-то.
вы вообще русский?, а то вдруг зря написал что-то грамотность зашкаливает.
Автор: sjwrec
Дата сообщения: 18.06.2014 17:36
999Kay666

Цитата:
игра распаковывается по типу winrar'a(но её инстал сделан в инно).


Извиняюсь. Просто вчера поздно уже было и мозг то и дело отказывал.

Если инсталл сделан в инно и функция деинсталляции включена. То полюбому есть запись в реестре о том куда установлена игра.

Идите в реестр и проверяйте этот раздел
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall для x86 системы
HKEY_LOCAL_MACHINE\Wow6432Node\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall для x64 системы

Тут может быть два варианта, не знаю какой выбрал разработчик инсталла для этой игры:

1. и самое лёгкое, использование названия игры Например: Watch_Dogs_R.G. Gamblers_is1 is1 - означает инсталлятор инно.

2. тяжёлое поиск APPID а вы же его не знаете

Итак допустим вы нашли раздел с игрой, гляньте ключ InstallLocation и что мы там видим !? )))

Вот ответы на Ваш вопрос. Но если не хотите давать скрипт мне в ЛС делайте сами, удачи.


Цитата:
Если то, что я хочу не возможно - так и скажите


Скажу, возможно и даже впринципе не сложно. Но это не тот вариант для Вас.
Автор: sergey3695
Дата сообщения: 18.06.2014 17:53
sjwrec изменения в реестре смотри и гадать не надо что и куда.
Автор: sjwrec
Дата сообщения: 18.06.2014 17:59
sergey3695
Про RegShot знаю и даже часто им пользуюсь. Инфа расчитана для тех, кто возможно не знает что такое снимок реестра (не в обиду сказано) .
Автор: nortem
Дата сообщения: 18.06.2014 18:47
Сергей. если вы про сообщения, клава новая, всю жизнь за безпроводной сидел, с Русским все хорошо, а что с скриптом не то? Я по обучалкам делал все.

Добавлено:
Спасибо, но куча ошибок вылетает + я бы сам хотел разгрести все это, пояните что не так в скрипте, и как убрать ересь.
Автор: ARABIS777
Дата сообщения: 19.06.2014 08:22
Чем можно распаковать инстилляции до состояния скрипта, которые созданы в версии 5.5.4?
Автор: nortem
Дата сообщения: 19.06.2014 10:31
В шапке, в утилитах, но секции code не будет
Автор: marineharrison
Дата сообщения: 19.06.2014 18:07
Мне поможет кто?
Автор: sergey3695
Дата сообщения: 19.06.2014 18:41
marineharrison

Код:
// DestDir: {code:DestDirComp};
//[code
function DestDirComp(Param: string): string;
begin
if WizardForm.ComponentsList.Checked[1] then //компанент отмечен. 2 строка в комп. листе.
Result := ExpandConstant('{app}')
else
Result := ExpandConstant('{app}\123');
end;
Автор: marineharrison
Дата сообщения: 19.06.2014 21:39
sergey3695
Спасибо, попробую.
Автор: LTJBukem
Дата сообщения: 21.06.2014 13:18
Глобальная беда на работе с компьютерной безграмотностью среди дилеров. Нужен многостраничный инсталлятор с поддержкой закачки файлов из интернета.
Пример: после страницы приветствия появляется страница №1 с выбором, что мы сейчас будем делать:
1A - Обновление программы.
1B - Вспомогательные функции.

Если выбрали задачу 1A и нажали далее, то появится страница №2 с обычным выбором папки установки и кнопкой установить. Тем самым произойдёт копирование Source: ..\Files1\*.
Если выбрали задачу 1B и нажали далее, то появится страница №3 с очередным выбором задачи:
3A - Удалённый помощник.
3B - Продление лицензии.

Если выбрали задачу 3A и нажали далее, то появится страница №4 с выбором:
4A - Запустить TeamViewer. // Произойдёт копирование из дистрибутива в папку Temp и запуск TeamViewer.exe
4B - Запустить Ammyy Admin. // Произойдёт копирование из дистрибутива в Temp и запуск AA_v3.exe
4C - Скачать и запустить последнюю версию TeamViewer (Требуется наличие интернета). // Здесь посложнее, закачка файла из интернета по фиксированной ссылке (http://downloadeu1.teamviewer.com/download/TeamViewer_Setup_ru-ckq.exe) в папку Temp и дальнейший запуск этого файла. Закачка, наверное, должна происходить с жёсткой перезаписью, если такой файл уже будет существовать в Temp.
4D - Скачать и запустить последнюю версию Ammyy Admin (Требуется наличие интернета). // Аналогично предыдущему, закачка файла в папку Temp из интернета по фиксированной ссылке (http://www.ammyy.com/AA_v3.exe) и дальнейший запуск этого файла.

Если выбрали задачу 3B и нажали далее, то появится страница №5 с выбором:
5A - Запуск продления лицензии. // Произойдёт копирование и запуск wtregister222.exe в папку, которая определится по следующему рабочему коду:
Код:
function GetInstallDir(S: String): String;
var
a: string;
begin
if RegQueryStringValue(HKCU, 'Software\MagSys\WinTecs\2.5\DBConfig\DEFAULT', 'WM_Private', S) then
begin
a:='PRIVATE';
Delete(S,pos(a,S),Length(a));
Result:= S;
end else
Result:= ExpandConstant(S);
end;

5B - Скачать и запустить последнюю версию продления лицензии (Требуется наличие интернета). // закачка файла из интернета по фиксированной ссылке (http://wintecs.by/downloads/service/wtregister222.exe) в папку, которая определится по предыдущему рабочему коду.
Автор: 999Kay666
Дата сообщения: 21.06.2014 16:56
sjwrec
а что если сделать так:
при установки моего мода создается запись в реестр с последним путём установки, которым, при последующих запусках и будет пользоваться мой мод-инсталл.
Т.Е. считывая путь установки из самим-же созданной записи, при предыдущей установки.

Приведите, пожалуйста, пример.

всем спасибо, решение найдено.

Код: [Setup]
DefaultDirName={reg:HKCU\Vibor,InstallSettings|{sd}\BHR}
[Registry]
Root: HKCU; Subkey: "Vibor"; ValueType: String; ValueName: InstallSettings; ValueData: "{app}"; Flags: uninsdeletekey
Автор: marineharrison
Дата сообщения: 21.06.2014 18:58
sergey3695
Все работает. Большое спасибо за помощь.
Автор: MaysonNoir
Дата сообщения: 24.06.2014 20:09
Добрый день!

Я совсем новичок в программе, только начинаю разбираться. Немного сложно конечно.
Хотел бы попросить о помощи.
У меня есть файл допустим 1.jpg мне нужно найти в определенной папке такой же файл и заменить его. (забыл сказать что в папке есть несколько подпапок)
Пожалуйста помогите (если конечно не лень

Заранее спасибо
Автор: boss911
Дата сообщения: 25.06.2014 15:49
Нужно добавить в реестр -

Код: Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ACDSeePro7.exe; ValueType: string; ValueName: Path; ValueData: {cf}\ACD Systems\EN\;{cf}\ACD Systems\:
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ACDSeeQVPro7.exe; ValueType: string; ValueName: Path; ValueData: {cf}\ACD Systems\EN\;{cf}\ACD Systems\:
Автор: YURSHAT
Дата сообщения: 25.06.2014 18:34
boss911

Цитата:
Но компилятор ругается, а все из-за специфического параметра реестра, в котором присутствует точка с запятой. Есть выход? Типа экранировать символ точка с запятой?

Добавить кавычки

Код: Root: HKLM; SubKey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ACDSeePro7.exe"; ValueType: string; ValueName: "Path"; ValueData: "{cf}\ACD Systems\EN\;{cf}\ACD Systems\:"
Root: HKLM; SubKey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ACDSeeQVPro7.exe"; ValueType: string; ValueName: "Path"; ValueData: "{cf}\ACD Systems\EN\;{cf}\ACD Systems\:"

Автор: Serega0675
Дата сообщения: 25.06.2014 18:54

Цитата:
Есть выход?

boss911, да всё же просто, добавь кавычки

Код:
... ValueData: "{cf}\ACD Systems\EN\;{cf}\ACD Systems\:"
Автор: boss911
Дата сообщения: 26.06.2014 00:57
YURSHAT
Serega0675

Спасибо, ребята. А я по глупости брал в кавычки каждый путь, короче, несколько вариантов пробовал, чего так не попробовал, сам не знаю, как все просто.
Автор: Habib2302
Дата сообщения: 26.06.2014 14:22
Всем привет. Мне давали код для изменения пути установки в зависимости от компонента и не работает команда /DIR

Код: procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectProgramGroup:
begin
if IsComponentSelected('AIDA642') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA642}';
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA642}';
end else begin
WizardForm.DirEdit.Text := ExpandConstant('{#SetupSetting("DefaultDirName")}');
WizardForm.GroupEdit.Text := ExpandConstant('{#SetupSetting("DefaultGroupName")}');
end;
end;
end;
end;
Автор: Cyb3rM4n
Дата сообщения: 04.07.2014 18:26
Подскаджите, как реализовать вспывающее окно с кнопкой OK перед тем, как появится основное окно инсталлятора?
Автор: painter7
Дата сообщения: 04.07.2014 18:53
Cyb3rM4n, не?

Код: function InitializeSetup(): Boolean;
begin
MsgBox('Hello!', mbInformation, MB_OK);
Result:=True;
end;
Автор: dragon1000
Дата сообщения: 05.07.2014 09:37
-delete-
Автор: AlekseyPopovv
Дата сообщения: 07.07.2014 13:00
Как сделать "Ключи командной строки", если везде "Check: InstallerCheck" и "Check: PortableCheck"?
Автор: AlekseyPopovv
Дата сообщения: 08.07.2014 07:56
Как сделать, что бы при деинсталляции была проверка реестра (к примеру деинсталлятор удаляет ветку 'Software\Teorex\Inpaint') и ещё нужно удалить ветку реестра 'Software\Teorex' - но только если она пустая! Как это сделать?
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usPostUninstall) then
begin
RegDeleteKeyIncludingSubkeys(HKCU, 'Software\Teorex\Inpaint');
end;
end;

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

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


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