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

Статус
В этой теме нельзя размещать новые ответы.
A

aLLeXUs

Гость
PlayHard, что бы получить такую рамку как у каталистов нужно нарисовать Panel, и поверх него немного меньший Bevel. Получится вот такой эффект
 

Snoopak96

Старожил
SeRaph1,
либо юзать юникод версию, либо для анси ..... ..... ..... (не для паблика) :crazy:
 

LexBell

Борода
Супер модератор
Либо, задавать родителю цвет основного фона наложенной картинки. не всегда спасет - если картинка ляпистая, фон будет виден, но если относительно равномерная - вполне приемлемый результат выйдет.
 

nik1967

Old Men
Проверенный
DARK-Silver666, [USER]Gnom[/USER] ещё немного оптимизировал этот код:
 

AntiAngel

Новичок
Нужна помощь...
Не могу понять почему при распаковки через arc.ini прогресс бар реагирует тока в конце.
В том смысле что в конце распаковки тока прогресс бар промелькает до 100% сек за 3 и всё...
 

Snoopak96

Старожил
Нужна помощь...
Не могу понять почему при распаковки через arc.ini прогресс бар реагирует тока в конце.
В том смысле что в конце распаковки тока прогресс бар промелькает до 100% сек за 3 и всё...
Я так понял что паковал внешним компрессором, то прогресс бар и не будет плавным если распаковываешь через ISArcExtract (IsDone.dll), так как не от чего отталкиваться чтобы двигать пб, а в конце 3 сек. это копирование данных из freearc.tmp в папку с игрой.
можно сделать так:
[FIELDSET="КОД"] if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\unarc.exe'), ExpandConstant('x -o+ "{src}\Data1.bin" -pПароль -dp"{app}'), ExpandConstant('{app}'), '...',false) then break;[/FIELDSET]
лучше чем ничего.
 
Последнее редактирование:

PlayHard

Новичок
скажите пожалуйста код с помощью которого можно перемещать Доп. компоненты
 

PlayHard

Новичок
Можно ли в исдоне поменять кнопку "Отменить распаковку", если да скажите пожалуйста код
 

PUNISHER

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

PUNISHER

Участник
PlayHard, щас заплачу от твоих вопросов.

russian.CancelButton=Отменить распаковку - меняешь на Отмена
 

vudi

Новичок
как сделать что бы перед тем как выскачит инсталятор показывалась небольшая картинка картинка на 2-3 секунды
 

alexa1995

Участник
Как запретить запуск 2-х версий одного инсталлятора?
Чтоб происходила проверка на наличие процесса setup.tmp и если таковой имеется чтоб выбивало окно с надписью " Уже запущена одна версия инсталлятора. Одновременный запуск запрещён"
 

sergey3695

Ветеран
Модератор
alexa1995,
Код:
; Название игры (С AppId НЕ БУДЕТ РАБОТАТЬ!) 
#define Name2                                   "Need For Speed: The RUN" 

[Setup]
AppMutex={#Name2}

[code_]
// Сама процедура Mutex
var
  Mutex: THandle;

function CreateMutex(lpMutexAttributes: Longint; bInitialOwner: BOOL; lpName: String): THandle; external 'CreateMutexW@kernel32.dll stdcall';
function ReleaseMutex(hMutex: THandle): BOOL; external 'ReleaseMutex@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall';

procedure SMutex; 
begin 
  Mutex:= CreateMutex(0, False, '{#SetupSetting("AppMutex")}');
end;

\\ Твое сообщение
function InitializeSetup(): Boolean;
begin
if CheckForMutexes(ExpandConstant('{#SetupSetting("AppMutex")}')) then
begin
  MsgBox('Уже запущена одна версия инсталлятора. Одновременный запуск запрещён', mbError,mb_Ok);
  Exit;
end;
  Result:= True;
end;

procedure InitializeWizard();
begin
  SMutex; 
end;

\\ Для IsDone добавить
if (CurStep=ssPostInstall) and ISDoneError then begin
  ReleaseMutex(Mutex);
  CloseHandle(Mutex);
  Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', False);
end;
 

LexBell

Борода
Супер модератор
alexa1995, Держи.
[SOURCE="iss"]#define Name2 "OLOLO"

[Setup]
AppName={#Name2}
AppVersion={#Name2}
DefaultDirName={pf}\{#Name2}
AppMutex={#Name2}

Код:
// Сама процедура Mutex
var
  Mutex: THandle;

function CreateMutex(lpMutexAttributes: Longint; bInitialOwner: BOOL; lpName: AnsiString): THandle; external 'CreateMutexA@kernel32.dll stdcall';
function ReleaseMutex(hMutex: THandle): BOOL; external 'ReleaseMutex@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall';

procedure SMutex;
begin
  Mutex:= CreateMutex(0, False, ExpandConstant('{#SetupSetting("AppMutex")}'));
end;


function InitializeSetup(): Boolean;
begin
  Result:= not CheckForMutexes(ExpandConstant('{#SetupSetting("AppMutex")}'));
  if not Result then
    MsgBox('Уже запущена одна версия инсталлятора. Одновременный запуск запрещён', mbError,mb_Ok);
end;

procedure InitializeWizard();
begin
  SMutex;
end;[/SOURCE][/SPOILER]
 

murlakatamenka

Новичок
помню, что nik1967 сделал полностью прозрачный инсталл, поищи или спроси у него :)
поискал везде где только знал, может сохранилась ссылочка у кого-нибудь?
ура, нашёл - лови (надеюсь, nik1967 не против)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху