Inno Setup. Сделайте за меня

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

tr011tmn

Новичок
tr011tmn, команды препроцессора работают только при компиляции скрипта.
как-то так должно выглядеть.
[SOURCE="iss"]var
BackBtnCheck : Boolean;
.........................................

BackBtnCheck := FileExists(AvRes+'\backup.7z');
case BackBtnCheck of
true : MsgBox('Файл найден, install continues', mbInformation, MB_OK);
false : MsgBox('Файл не найден, install stops', mbCriticalError, MB_OK);
end;
BtnSetVisibility(Backbtn,BackBtnCheck);
BtnSetVisibility(UnBackbtn,not BackBtnCheck);[/SOURCE]
Спасибо большое за подсказку но не вышло, независимо от наличия файла высвечивает только кнопку UnBackbtn. Забавно мне удалось добиться видимости только кнопки Backbtn, вам UnBackbtn, но желаемого по очереди не получается :(

посетила мысль, а нельзя ли в case загнать BtnSetVisibility? ведь тогда проблема будет решена :)
 

sergey3695

Ветеран
Модератор
tr011tmn,
Код:
  .........................................
 
  if FileExists(AvRes+'\backup.7z') then
  begin
  BtnSetVisibility(Backbtn,True);
  BtnSetVisibility(UnBackbtn,False);
  MsgBox('Файл найден, install continues', mbInformation, MB_OK);
  end else begin 
  BtnSetVisibility(Backbtn,True);
  BtnSetVisibility(UnBackbtn,False);
  MsgBox('Файл не найден, install stops', mbCriticalError, MB_OK);
  end;
что мешает так сделать?
 
Последнее редактирование:

tr011tmn

Новичок
LexBell, sergey3695, спасибо за направление в верном русле, удалось реализовать желаемое благодаря вашим подсказкам, результатом стало:

Код:
var
BcbRes: String;
Result1: String;
.......................................
      // отработка кнопки бэкапа
      if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'reg_value','InstallLocation', BcbRes) then begin
        Result1:= BcbRes;
        end
        else
      if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'reg_value','InstallLocation', BcbRes) then begin
        Result1:= BcbRes;
        end
        else
      BcbRes:='path_to_install';
      if FileExists(BcbRes+'\backup.7z') then begin
        BtnSetVisibility(Backbtn,False);
        BtnSetVisibility(UnBackbtn,True);
        MsgBox('Файл найден, install continues', mbInformation, MB_OK);
      end else begin
        BtnSetVisibility(Backbtn,True);
        BtnSetVisibility(UnBackbtn,False);
        MsgBox('Файл не найден, install stops', mbCriticalError, MB_OK);
      end;
      //конец обработки бэкапа
 

Лёха

Участник
товарищи, подскажите как убрать сию рамку???
нашёл что надо изменить WizardForm.BorderStyle:=bsSingle; на WizardForm.BorderStyle:=bsNone; но там нет ничего подобного.
скрипт от Krinkels Team.
 

Вложения

Последнее редактирование:

dotWizard

Мимокрокодил
Правка скрипта

Подскажите как сделать проверку на наличие определённых файлов в указанной дирректории и их удаление и/или переименование.
 
Последнее редактирование:

PUNISHER

Участник
dotWizard,
begin
if FileExists(ExpandConstant('{app}\name.xxx')) then
begin
DeleteFile(ExpandConstant('{app}\name.xxx')) /// удаление
RenameFile(ExpandConstant('{app}\name.xxx'),ExpandConstant('{app}\name2.xxx')); /// переименование
end
end;
 

vint56

Ветеран
Проверенный
dotWizard
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Components]
Name: action; Description: Что делать с файлом; Flags: fixed; Types: full custom
Name: action\del; Description: Удалить файл; Flags: exclusive;
Name: action\ren; Description: переименовать файл; Flags: exclusive;

procedure InitializeWizard();
begin
WizardForm.TypesCombo.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
begin
if FileExists(ExpandConstant('{app}\multiset.ini')) then
If IsComponentSelected('action\del') then
DeleteFile(ExpandConstant('{app}\multiset.ini'));
if FileExists(ExpandConstant('{app}\multiset.ini')) then
If IsComponentSelected('action\ren') then
RenameFile(ExpandConstant('{app}\multiset.ini'), ExpandConstant('{app}\multiset.ini.bak'));
end;
end;
 

LexBell

Борода
Супер модератор
dotWizard, вместо DeleteFile используй функцию DelTree. В открытом компиляторе нажми F1, и забей DelTree в поиске в открывшейся справке. Там с примерами. Эта функция может удалять: только указанный файл, удаление всех файлов из указанной подпапки и удаление указанной папки со всем содержимым. примеры каждого варианта использования, приложены к описанию функции в справке. К инно вообще прилагается очень подробная справка.
 

NightTrap

Мимокрокодил
Exe на Crack

Как должен выглядеть inno Setup код который после устанвки игры заменил оригинальный Exe файл на Crack.И чтобы етот Crack после распаковки ставился как патч и сам находил директорию где установлена игра и заменил оригинал exe на себя.И чтобы после распаковки файл Crack непрятался в своей папке а устанавливался "голый" поверху с заменой (Original Game Exe).
 

Loner

Новичок
простая распаковка архива в папку с установленной игрой {app}

Добавлено через 41 секунду
любой скрипт скачай...

Добавлено через 1 минуту
Как должен выглядеть inno Setup код который после устанвки игры заменил оригинальный Exe файл на Crack.И чтобы етот Crack после распаковки ставился как патч и сам находил директорию где установлена игра и заменил оригинал exe на себя.И чтобы после распаковки файл Crack непрятался в своей папке а устанавливался "голый" поверху с заменой (Original Game Exe).
:o:o
 

sergey3695

Ветеран
Модератор
NightTrap, ну это просто шедевр...:rofl:
-----
Извините за флуд, но это действительно классно так описывать простые вещи.
-----
оригинальный Exe файл на Crack
Заранее кинуть кряк взамен оригинального exe никак? ты же не собираешься делать выбор на установку кряка... если да,то пакуем файлы для кряка в отдельный архив и распаковываем в папку с игрой (в нужную директорию),а оригинальный exe в другом архиве скажем. Тут уже в зависимости от выбранного.
 
Последнее редактирование:

Дамир

Новичок
Подскажите пожалуйста, как можно сделать кнопку запуска/паузы музыки через Басс на этой панели
 

sergey3695

Ветеран
Модератор
Дамир, просто так не сделать. но можно:
1. использовать скин (тогда можно будет сделать одну из трех кнопок нужной при условии если максимизация ненужна)
(просто используя скин можно будет заменить картинку через SkinBuilder). но надо будет нарисовать кнопку. (но картинка при проигрывании и паузе не будет меняться)
2. использовать классический стиль установщика (как у win xp) тогда можно будет отрисовать как-то дополнительную кнопку. но это геморойно.
3. не загонятся. поставить bsNone и с помощью ботвы все сделать (чтобы кнопки с наложением картинки) или самому просто кнопки разместить.
// лучше 3 пункт.
 

Дамир

Новичок
sergey3695, неа, не получается, код диабло разбирал так до конца и не разобрал, слишком навороченный. Нашел еще подобное в скрипте Xenius 2 но там так же, все в одной куче. Не поможешь написать простой инсталлятор(созданный через мастер Inno Setup) только с использованием Басс и ботвы с кнопкой пуск/пауза, как вот тут
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху