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

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

Автор: tryroom
Дата сообщения: 26.01.2015 19:23
Tima182
Не вижу в чем проблема.
Подставил файлы, скомпилировал, установил, затем удалил.
Все работает. Остатков программы, не обнаружил.
[more]
Код:
#define MyAppName "SpinTires 2014"
#define MyAppVersion "0.2"
#define MyAppExeName "SpinTires.exe"

[Setup]
AppId={{2D30D0EC-6B19-4EF8-9D1A-4F0BA1F9AA36}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=.
Compression=lzma/ultra
SolidCompression=true
InternalCompressLevel=ultra
PrivilegesRequired=none
CompressionThreads=8

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: InstallFiles\*; DestDir:{app}; Flags: ignoreversion recursesubdirs createallsubdirs;
;Source: C:\Ïðîãðàììû\Spintires20141\SpinTires.exe; DestDir: {app}; Flags: ignoreversion
;Source: C:\Ïðîãðàììû\Spintires20141\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs

[Registry]
Root: HKCU; SubKey: Software\Spin Tires; Flags: uninsdeletekey

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon} SpinTires; GroupDescription: {cm:AdditionalIcons};
Name: desktopicon2; Description: {cm:CreateDesktopIcon} SPMM; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Icons]
Name: {userdesktop}\{#MyAppName}; Filename: {app}\SpinTires.exe; Tasks: desktopicon; WorkingDir: {app}
Name: {userdesktop}\smp; Filename: {app}\spmmm.exe; Tasks: desktopicon2; WorkingDir: {app}; IconIndex: 0
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}

[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent

[UninstallDelete]
Type: filesandordirs; Name: "{app}"
Type: filesandordirs; Name: "{localappdata}\spintires";
Type: filesandordirs; Name: "{userappdata}\spintires";
Автор: nik1967
Дата сообщения: 26.01.2015 20:02
CUTA, [more=пример.]
Код: [Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Code]
function InitializeSetup: Boolean;
var
Name: String;
    
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Version', Name) then
MsgBox(Name, mbInformation, MB_OK);
end;
Автор: CUTA
Дата сообщения: 26.01.2015 20:32
nik1967
Это не то что мне нужно, а в интернетах нашёл верный пример.
Вот так должно быть, может кому пригодится.

Код: Function RegistryCheck: Boolean;
Begin
Result := RegValueExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Version')
End;
Автор: nik1967
Дата сообщения: 26.01.2015 20:38

Цитата:
Это не то что мне нужно

Ну во 1. ты и не объяснил толком, что тебе нужно, и во 2. это только пример.
Автор: sergey3695
Дата сообщения: 26.01.2015 21:02
CUTA <Это не то что мне нужно> и в коде <RegValueExists>. Лол
Если я посылаю в справку значит это изи, легко найти пример вбив слово в поисковике (выше, справа) или это слишком много раз обсуждалось.
Вот смотри
В разделе \v3.5 должно находить параметр Version со значением 3.5.30729.5420.

у тебя так

Код: Function RegistryCheck: Boolean;
Begin
Result := RegValueExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Version')
End;
Автор: Tima182
Дата сообщения: 26.01.2015 21:39
А как сделать что бы без галочки ярлыки создавались?
Автор: sergey3695
Дата сообщения: 26.01.2015 21:56
Tima182 секцию [Tasks] удали, а в [Icons] удали Tasks: desktopicon;
Автор: Genri
Дата сообщения: 27.01.2015 01:29
CUTA

Цитата:
в интернетах нашёл верный пример.
Вот так должно быть, может кому пригодится.
-- может кому и пригодится, но тебе вряд ли подойдет. Ведь в задаче было сказано определить точное значение ключа, а не его наличие.

Хотя могу предположить, что на самом деле задача стояла определить установлен ли фреймворк версии 3.5 (вряд ли кому понадобится определять еще и точный билд). В таком случае можешь конечно использовать и пример из "интернетов". Хотя в таком виде есть риск нарваться на комп, в котором ключ будет присутствовать, но фреймворк нужной версии будет не установлен

Если действительно требуется определить установлен ли фреймворк нужной версии, то в соответствии с рекомендациями майкрософта (они тоже есть в интернетах ), проверять надо не параметр Version, а параметр Install. [more=Примерно так.]
Код: [no]
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Code]
function RegistryCheck: Boolean;
var
installed: cardinal;
begin
Result:= RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', installed) and (installed = 1);
end;

procedure InitializeWizard();
begin
if RegistryCheck then MsgBox('NET v3.5 installed', mbInformation, MB_OK);
end;
[/no]
Автор: CUTA
Дата сообщения: 27.01.2015 06:39
Genri
Благодарю за разъяснения.
Автор: Tima182
Дата сообщения: 27.01.2015 09:28
sergey3695
Спасибо.
Как вы поняли, я делаю простую установку игры с новыми картами и машинами. И с полным удалением.
tryroom
Все удаляет, как и хотел.
Остается еще 1 папка, не хватает что бы еще удаляло от туда C:\Users\пользователь(может быть любой)\AppData\Roaming\ папку SpinTires
При вашем удалении оставляет все равно 1 папку. Хотелось бы что бы удаляло не зависимо от системы.
Еще в программ файлсе не полностью удаляет папку, когда моды ставишь.
Автор: tryroom
Дата сообщения: 27.01.2015 18:01
Tima182
Я вам уже 2 раза писал, как удалять эту папку
C:\Users\пользователь(может быть любой)\AppData\Roaming\ папку SpinTires
[UninstallDelete]
Type: filesandordirs; Name: "{userappdata}\SpinTires";
Автор: Tima182
Дата сообщения: 27.01.2015 21:48
tryroom
Спасибо, удаляет все что надо в вин 7.
Автор: AngelNet
Дата сообщения: 28.01.2015 17:46
Tima182
старайтесь проверять на виндовс ХП (хотя бы на виртуалке) свои инсталлы.
я на эти грабли уже наступил в своё время, так что настоятельно вам рекомендую это делать!
Автор: DeadLady
Дата сообщения: 29.01.2015 16:44
Господа программисты, может быть слишком дерзкая просьба, помогите пожалуйста перешить IsDone с версии 05 на 06 Final, в моём скрипте. А то уже извелась вся, ничего не получается.
Огромная просьба, пожалуйста!
Автор: MOD_TEC
Дата сообщения: 29.01.2015 18:31

Цитата:
Господа программисты, может быть слишком дерзкая просьба, помогите пожалуйста перешить IsDone с версии 05 на 06 Final, в моём скрипте. А то уже извелась вся, ничего не получается.
Огромная просьба, пожалуйста!

DeadLady Скрипт в студию.
Автор: Tima182
Дата сообщения: 30.01.2015 06:04
AngelNet
Винда есть, надо будет там еще проверить. Но нужно что бы удаляло в разных системах из аппдаты.
Автор: MogilShik2007
Дата сообщения: 30.01.2015 15:29
Привет подскажите как сделать:

Вот пример: Х:\ХХХ\Sierra\Bobrik

Bobrik - удаляется этим Type: filesandordirs; Name: "{app}"
Sierra - как? Если ставить по умолчанию там понятно Type: dirifempty; Name: "{pf}\Sierra"
А если поставить на другой диск, то там как удалять Sierra?
Автор: Genri
Дата сообщения: 30.01.2015 16:35
MogilShik2007

Цитата:
если поставить на другой диск, то там как удалять Sierra?

Код: Type: dirifempty; Name: "{app}\.."
Автор: MogilShik2007
Дата сообщения: 30.01.2015 17:25
Это на прокатывает, Sierra содержит в себе {app}. а не наоборот.
Автор: DeadLady
Дата сообщения: 30.01.2015 18:16
MOD_TEC

Вот скрипт со всеми элементами: http://sendfile.su/1080053
Буду ОЧЕНЬ БЛАГОДАРНА!
Автор: Genri
Дата сообщения: 30.01.2015 18:32
MogilShik2007

Цитата:
Это на прокатывает, Sierra содержит в себе {app}. а не наоборот.
-- уверен? Судя по ответу, ты даже не пробовал.
Допустим поставили в папку: D:\Games\Sierra\Bobrik
{app} у тебя это Bobrik
в таком случае, {app}\.. означает на уровень вверх от папки Bobrik (т.е. Sierra). Так что все должно работать.

Второй пример:
есть две папки:
D:\Games\Sierra\Bobrik
D:\Games\EA\NFS
В таком случае, если пропишешь {app}\..\..\EA\NFS
то будет удалена папка NFS (если она пустая). Т.е. {app} это Bobrik, на уровень вверх - Sierra, еще на уровень вверх - Games, вниз в EA и NFS. Все

Добавление: посмотри пример в 4-м сезоне - http://forum.ru-board.com/topic.cgi?forum=5&topic=27438&start=1640#13
Автор: MogilShik2007
Дата сообщения: 30.01.2015 19:23
Пробовал Type: dirifempty; Name: "{app}\Sierrs" - в этом случае даже папка бобрик не удаляется)))
За новые примеры спасибо, попробую)))

Хотя с этим проще:

[UninstallDelete]
Type: dirifempty; Name: {code:ParentFolderName};

[*Code]
Function ParentFolderName(DefaultPath: String): String;
var
oFS: Variant;
begin
Result := DefaultPath;
oFS := CreateOleObject('Scripting.FileSystemObject');
Result := oFS.GetParentFolderName(ExpandConstant('{app}'));
end;

Добавлено:
Вроде где-то пробегал такой вопрос, теперь не могу найти:

Такой вопрос компилю скрипт, все устанавливается, и при нажатии на кнопку Завершить - инсталлятор закрывается и через секунду выскакивает сообщение винды об ошибке - Прекращена работа программы "Setup/Uninstall". Так то все нормально, все файлы копируются, приложение запускается и работает, но эта выскакивающая плямба напрягает, куда копать?
Винда 7х64

ЗЫ. Проверил на ХР, такой проблемы нет, все ставится, работает, сообщений об ошибках нет.
Вот и чего думать?
Автор: Re0g
Дата сообщения: 30.01.2015 21:30
Всем, добрый вечер.
Натолкните на пример. Задача перед WelcomePage вывести страницу с проверкой отсутствующих компонентов (например dotnet и vcredist, может ещё чего-то). Можно выводить msgbox для каждого отсутствующего компонента по очереди, но хочется именно создать страницу на которой будет список отсутствующих компонентов с линками на них (линки самостоятельно, только как реализовать вывод страницы?).
Автор: Genri
Дата сообщения: 30.01.2015 22:08
MogilShik2007

Цитата:
при нажатии на кнопку Завершить - инсталлятор закрывается и через секунду выскакивает сообщение винды об ошибке - Прекращена работа программы "Setup/Uninstall"
-- копать в сторону длл-ок которые грузит инсталлятор, но похоже корректно не выгружает.
Автор: MogilShik2007
Дата сообщения: 30.01.2015 22:11

Цитата:
-- копать в сторону длл-ок которые грузит инсталлятор, но похоже корректно не выгружает.

Да как то странно, 7х64 - выдает ошибку, 7х86, ХР - ошибок нет, кинул скрипт, один человек отписался 7х86 - тоже ошибка, Волшебство прям таки)))
Автор: MogilShik2007
Дата сообщения: 31.01.2015 12:04
Блин че за бред, скомпилил скрипт, запустил приложение - все норм, повторно компилю - запускаю приложение при установке мне кричит Не найдено ни одного файла, указанного для ISArcExtract! Файл 1.bin лежит рядом с ехе.
Автор: DeadLady
Дата сообщения: 31.01.2015 12:29
MogilShik2007

Была аналогичная беда. "Инка" выдавала разные ошибки. Попробуйте заменить программу, поставьте последнюю расширенную версию. Лично у меня проблема исчезла.
Inno Setup 5.5.1.ee2 (a) (build 121216): ANSI / UNICODE
Автор: MogilShik2007
Дата сообщения: 31.01.2015 12:34
Спс, просто интересно, перед этим то нормально собралось и работало.
Автор: DeadLady
Дата сообщения: 31.01.2015 12:37
Люди добрые! Мне то хоть кто-нибудь поможет?
Автор: MogilShik2007
Дата сообщения: 31.01.2015 13:41
Что за библиотека b2p.dll?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

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


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