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

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

Автор: tryroom
Дата сообщения: 07.02.2014 12:23
vint56
Спасибо за помощь.
Автор: xap4oru
Дата сообщения: 07.02.2014 13:17
Друзья, можете оказать помощь? Делаю репак игры, в котором будет два чекбокса на выбор: установка крякнутой игры как отдельной и установка стимовской версии. Как сделать так, чтобы после выбора типа репака изменялась дефолтная папка установки? К примеру, чтобы после выбора крякнутой версии путь был "D:\игра", а стимовской "D:\Steam\SteamApps\common\игра".
Автор: tryroom
Дата сообщения: 07.02.2014 14:09
vint56
Вопросы разные, и ответы тоже.
Автор: 307cwam
Дата сообщения: 07.02.2014 19:35
Здраствуйте все!

Страница Информация.
http://s019.radikal.ru/i637/1402/4c/075bb64f9f3a.png

Подскажите можно ли чтобы окошко с информацией
располагалось немного выше,
а надпись "Нажмите Далее для продолжения" внизу.
Автор: 307cwam
Дата сообщения: 08.02.2014 06:10
Страница Информация получилась, но не совсем.

Если использовать простой инсталлятор,
то всё отображается нормально.

А если использовать скин в инсталляторе,
то получается как на рисунке.
http://s020.radikal.ru/i718/1402/b9/808e90218789.png

При скине у поля Мемо
не отображается вертикальный скроллбар.
Вместо него отображается часть текста
со страницы Приветствия.

Что с этим можно сделать? Обновить или как?
Автор: Re0g
Дата сообщения: 09.02.2014 17:56
Помогите решить вопрос пожалуйста, почему при деинсталяции не удаляются ключи из реестра?

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
RegDeleteKeyIncludingSubkeys(HKCR, 'CLSID\{{D27CDB6E-AE6D-11cf-96B8-444553540000}');
RegDeleteKeyIncludingSubkeys(HKCR, 'Interface\{{86230738-D762-4C50-A2DE-A753E5B1686F}');
end;


Автор: Tapas77789
Дата сообщения: 10.02.2014 09:40
Re0g
CurUninstallStep = usUninstall заменить на usPostUninstall

xap4oru
Можно скрин окна с чекбоксами
Автор: Raf_SE
Дата сообщения: 14.02.2014 09:38
А на страницу "выбора дополнительных задач", которая появляется если в разделе скрипта [Tasks] что-то указать, можно как-то хинты пунктам выбора прикрутить?
Автор: Alex 17
Дата сообщения: 20.02.2014 20:05
Здравствуйте!

1. Я использую ISWin7 плагин для прозрачности краев, но деинсталлятор не прозрачный, а обычный.. как это исправить?
2. После удаления остается пустая папка, почему она не удаляется и как это исправить?
3. (не обязательно отвечать) Я хотел изменить ширину инсталлятора, но все другие елементи оставались на месте, как сделать так что б и они передвунулись соответственно?

Спасибо!
Автор: DICI BF
Дата сообщения: 20.02.2014 21:04
Alex 17,
1. [more=Вот так!]
Код: [Setup]
AppName=ISWin7
AppVerName=ISWin7 v0.5
DefaultDirName={pf}\ISWin7
DefaultGroupName=ISWin7
OutputDir=.

[Dirs]
Name: "{app}\ISWin7"; Attribs: hidden system

[Files]
Source: "iswin7.dll"; DestDir: "{app}\ISWin7"; Attribs: hidden system

; Перед компиляцией удалить "_"...
[_Code]
procedure iswin7_add_button(Handle: HWND);
external 'iswin7_add_button@{tmp}\iswin7.dll stdcall delayload';

procedure iswin7_add_glass(Handle: HWND; Left, Top, Right, Bottom: Integer; GDIPLoadMode: Boolean);
external 'iswin7_add_glass@{tmp}\iswin7.dll stdcall delayload';

procedure iswin7_free;
external 'iswin7_free@{tmp}\iswin7.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('iswin7.dll');
Result := True;
end;

procedure InitializeWizard();
begin
iswin7_add_button(WizardForm.BackButton.Handle);
iswin7_add_button(WizardForm.NextButton.Handle);
iswin7_add_button(WizardForm.CancelButton.Handle);
iswin7_add_glass(WizardForm.Handle, 0, 0, 0, 47, True);
end;

procedure DeinitializeSetup();
begin
iswin7_free;
end;

function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\ISWin7\iswin7.dll'), ExpandConstant('{tmp}\iswin7.dll'), False);
Result := True;
end;

procedure InitializeUninstallProgressForm();
begin
iswin7_add_button(UninstallProgressForm.CancelButton.Handle);
iswin7_add_glass(UninstallProgressForm.Handle, 0, 0, 0, 47, True);
end;

procedure DeinitializeUninstall();
begin
iswin7_free;
end;
Автор: Alex 17
Дата сообщения: 21.02.2014 12:49
Спасибо!!
Автор: 3JIou_CKuH
Дата сообщения: 23.02.2014 07:32
Здравствуйте. Прошу прощения если написал не в тот раздел, не могли бы кто нибудь из знающих подсказать мне по одному вопросу...

Я использую библиотеку Bass.dll для проигрывания музыки при инсталляции, вот код:

Код: const
BASS_SAMPLE_LOOP = 4;

var
mp3Handle: HWND;
mp3Name: String;

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; external 'BASS_Init@files:Bass.dll stdcall delayload';
function BASS_StreamCreateFile(mem: BOOL; f: PAnsiChar; offset1: DWORD; offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): DWORD; external 'BASS_StreamCreateFile@files:Bass.dll stdcall delayload';
function BASS_Start: Boolean; external 'BASS_Start@files:Bass.dll stdcall delayload';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; external 'BASS_ChannelPlay@files:Bass.dll stdcall delayload';
function BASS_Stop: Boolean; external 'BASS_Stop@files:Bass.dll stdcall delayload';
function BASS_Free: Boolean; external 'BASS_Free@files:Bass.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Bass.dll');
ExtractTemporaryFile('1.mp3');
mp3Name := ExpandConstant('{tmp}\1.mp3');
BASS_Init(-1, 44100, 0, 0, 0);
mp3Handle := BASS_StreamCreateFile(FALSE, PAnsiChar(mp3Name), 0, 0, 0, 0, BASS_SAMPLE_LOOP);
BASS_Start();
BASS_ChannelPlay(mp3Handle, False);
Result := True;
end;

procedure DeinitializeSetup();
begin
BASS_Stop();
BASS_Free();
end;
Автор: tryroom
Дата сообщения: 23.02.2014 10:08
3JIou_CKuH Держи
http://rghost.ru/52609556
Автор: vint56
Дата сообщения: 23.02.2014 10:34
procedure DeinitializeSetup();
var
ErrorCode: Integer;
begin
BASS_Stop();
BASS_Free();
ShellExec('open', 'http://www.google.ru/',
'', '', SW_SHOW, ewNoWait, ErrorCode);
end;
Автор: tryroom
Дата сообщения: 23.02.2014 11:06
vint56
Как удалить или скрыть кнопку далее, а то некрасиво получилось.
http://rghost.ru/52610650

Автор: light_finder
Дата сообщения: 23.02.2014 11:16
Ребят, а помогите сделать анинстоллер. Тема такая - программа при работе создает файл настроек и генерирует файлы с данными. Причем путь, куда сохраняются эти файлы, указывается при запуске программы (также он записывается в файл настроек). Я хочу сделать сделующее:

1. Добавить пункт деинсталляции в меню пуск
2. Добавить запрос на удаление файла настроек программы и файлов с данными при деинсталляции программы. Если пользователь отвечает утвердительно - файлы удаляются, если нет - не удаляются.

Подскажите пожалуйста, как такое сделать?
Автор: vint56
Дата сообщения: 23.02.2014 11:25
tryroom
Procedure CurPageChanged(CurPageID: Integer);
Begin
If CurPageID = Component.ID then
Begin
izardForm.NextButton.Hide;
End;
End;
Автор: tryroom
Дата сообщения: 23.02.2014 11:38
vint56
Спасибо, то что нужно.
Автор: dragon1000
Дата сообщения: 23.02.2014 12:47
-del-
Автор: tryroom
Дата сообщения: 23.02.2014 13:01
Вопрос решил
Автор: 3JIou_CKuH
Дата сообщения: 23.02.2014 14:26
tryroom
Большое вам спасибо
Автор: light_finder
Дата сообщения: 23.02.2014 17:13
Ребят, вопрос насчет значков на ярлыках. Вот у меня есть программа, состоящая из нескольких окон. У каждого окна своя пиктограмма (изображение на панели задач). Пиктограммы вшиты в экзешник. Но при запуске почему-то значки сменяются на стандартные виндовзные. Как сделать так, чтоб они не изменялись?

Нашел, как задавать иконку программе через IconFilename, но он во-первых требует внешнего файла с расширением .ico, а во-вторых делает у всех окон одинаковые иконки.
Автор: Yfim
Дата сообщения: 23.02.2014 20:17
Все привет скачал из нета скрипт BoxPack Origin
http://img198.imageshack.us/img198/841/v0b5.jpg
но при попытке скомпилировать его , inno setup выдает такую ошибку

http://img69.imageshack.us/img69/3821/rcoc.jpg
Автор: Tapas77789
Дата сообщения: 23.02.2014 21:53
Yfim
Нужна, расширенная версия от китайских собратьев. Домашняя страница ResTools
Автор: Shaman2
Дата сообщения: 25.02.2014 02:36
Уже час пытаюсь понять, почему не работает. Подскажите?


Код:
procedure CurStepChanged(CurStep: TSetupStep);
var
FindFiles: TFindRec;
i,d: integer;
MyFiles, MyDirs: array of string;
MyDir, BackDir, Date: string;
begin
if CurStep=ssInstall then begin
if MyTask.Checked then begin

Date:='1234';

MyDirs:=['','db\','report.frf\','report.frf\miReports\','report.frf\miHaving\','report.frf\miPrice\','templates\'];
for d:=0 to GetArrayLength(MyDirs)-1 do
begin

MyFiles:=['*']; //при указании маски '*' бакупятся все файлы с вложенными папками
MyDir:=ExpandConstant('{app}\'+MyDirs[d]); //папка откуда бакупить
BackDir:=ExpandConstant('{app}'+'\Backup\'+Date+'\'+MyDirs[d]); // папка куда бакупить
for i:=0 to GetArrayLength(MyFiles)-1 do
begin
if FindFirst(MyDir+MyFiles[i], FindFiles) then begin
repeat
if not DirExists(BackDir) then begin
CreateDir(BackDir);
end;

Автор: Tapas77789
Дата сообщения: 25.02.2014 15:36
Shaman2

CreateDir(Date)
Автор: Shaman2
Дата сообщения: 25.02.2014 18:46

Цитата:
CreateDir(Date)


Ты наверное не понял. В коде я задаю

BackDir:=ExpandConstant('{app}'+'\Backup\'+Date+'\'+MyDirs[d]);

И далее
CreateDir(BackDir)

так вот, если присвоить Date, то каталог не создается.
А если не присваивать значение Date, то создается.
Date это строковая переменная, неважно что указать в ней
Автор: Tapas77789
Дата сообщения: 26.02.2014 11:02
Shaman2
Все равно папку Date нужно создавать отдельно, иначе не создается. Либо использовать ForceDirectories

Автор: Shaman2
Дата сообщения: 26.02.2014 11:11

Цитата:
Все равно папку Date нужно создавать отдельно, иначе не создается. Либо использовать ForceDirectories


Тогда я не совсем понимаю, почему если указать Date, то и конструкция вида
ExpandConstant('{app}'+'\Backup\'+MyDirs[d])

тоже неработает. А убираю строку с Date и все ок. Я уже и просто переименовывал Date на DirDate например, всеравно глюк.

Как правильно создавать вложенные папки?
Автор: Tapas77789
Дата сообщения: 26.02.2014 12:20
Shaman2

Замени CreateDir(BackDir) на ForceDirectories(BackDir)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

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


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