[архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Ответить
 • Просмотры: 24
Аватара пользователя
414895494

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение 414895494 »

Цитата Serega:



Я так полагаю, что изображение загружено на какой-то контрол, если да то:

UninstallProgressForm.ProgressBar.Parent:= ваш контрол;
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




За это спасибо,а как можно убрать стандартное сообщение переде удаление и после?

Что бы их просто не было запустил унинстал.ехе появилась стр. с пб. удалилось и закрылось.
Аватара пользователя
DemonAk

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение DemonAk »

DemonAk, Думаю можно и так:





Код:

Код: Выделить всё

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.
[UninstallDelete]
Type: files; Name: "{app}\autoexec.cfg";
[code]
var
  Page: TInputQueryWizardPage;
procedure InitializeWizard();
begin
  Page := CreateInputQueryPage(wpWelcome, 'Текст_1', 'Текст_2', 'Введите ник для сетевой игры');
  Page.Add('', False);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
   SaveStringToFile(ExpandConstant('{app}\autoexec.cfg'), 'name ' + '"' + Page.Values[0] + '"' + #13#10, False);
end;

А это условие:


Цитата:



Послее ввода ника жмем далее и информация должна записаться в файл {app}\autoexec.cfg, вот так:

name "Ник который ввели"



возможно не раньше wpSelectDir, т.к. {app} ещё не была определена.
Аватара пользователя
DemonAk

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение DemonAk »

Цитата Winstan:



как можно убрать стандартное сообщение переде удаление и после?
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




Написал пример, для Restools, можно и для обычной, но там надо использовать InnoCallBack.dll...


Пример




Код:

Код: Выделить всё

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Code]
const
  BM_CLICK    = $00F5; // это обычный клик 
  WM_CLOSE    = $0010; // понятно из названия
// Осуществляет поиск дочернего окна
function FindWindowEx(Parent, Child: HWND; ClassName, WindowName: PChar): HWND;
  external 'FindWindowExA@user32.dll stdcall';
var
  Timer: TTimer;
  msg: string;
  Wnd, WndEx: HWND;
  count: Integer;
procedure OnTimer(Sender: TObject);
begin
  Wnd:= FindWindowByWindowName(msg); // ищем сообщение
  if Wnd > 0 then // если нашли
    if count = 1 then // если первое уже находили, то
      PostMessage(Wnd, WM_CLOSE, 0, 0) // просто закрываем
    else
    begin
      WndEx:= FindWindowEx(Wnd, 0,'Button', SetupMessage(msgButtonYes)); // ищем кнопку
      if WndEx > 0 then // если нашли
        begin
          PostMessage(WndEx, BM_CLICK, 0, 0); // нажимаем кнопку
          count:= 1; // указываем что первое сообщение уже нашли
          Timer.Enabled:= False; // отключаем таймер
        end;
    end;
end;
function InitializeUninstall(): Boolean;
begin
  Result:= True;
  // задаём переменной текст окна
  msg:= SetupMessage(msgUninstallAppFullTitle);
  StringChange(msg, '%1', '{#SetupSetting('AppName')}');
  Timer:= TTimer.Create(nil);
  with Timer do
    begin
      OnTimer:= @OnTimer;
      Interval:= 1;
      Enabled:= True;
    end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then Timer.Enabled:= True; // включаем таймер ещё раз
end;
Аватара пользователя
REXE

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение REXE »





Как сделать так чтобы передвинуть текст на всех страницах по разному(как на скринах)? И как сделать размер и другой шрифт всего текста на всех страницах?



ЗЫ. Я начинающий пользователь так что если можно можете расписать в скрипте как для чайника.
Аватара пользователя
REXE

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение REXE »

Serega,

Все понял фишку происходит мили секундное появление и переходит на другую страницу. Но все же глаз человека их видит. Интервал больше ставишь происходит по стондарту, норм интервал где то коло 100 еще более мения махом мелькает.

Но все же если бы была возможность их отключить (то их бы отключили) и написать новую форму то другое дело Изображение а так значит не как.

Спасибо за вариант решения данной проблемы..
Аватара пользователя
Serega

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение Serega »

Цитата R.i.m.s.k.y.:



при параметре /auto инсталлер не отсвечивал лишними окнами
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]





Пример




Код:

Код: Выделить всё

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Code]
function IsParamStr: Boolean;
var
  i: Integer;
  str: string;
begin
  Result:= False;
  for i:= 0 to ParamCount do
    str:= str + ParamStr(i);
  if Pos(Lowercase('/auto'), Lowercase(str)) > 0 then
  Result:= True;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
  if (CurPageID > 0) and IsParamStr then
    WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;







Цитата R.i.m.s.k.y.:



но при параметре /auto в скрипте должны отрабатываться свои "ветки")
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




Если где-то в коде, то if IsParamStr then - какое-то дествие...

Если выполнять или нет какие-то секции в скрипте, задавайте с помощью Check:



Код:

Код: Выделить всё

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Check: IsParamStr; Flags: ignoreversion


Цитата R.i.m.s.k.y.:



как можно в коде обработать выбор пользователя в Components?
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]





Пример




Код:

Код: Выделить всё

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full
[Code]
procedure ClickCheck(Sender: TObject);
var
  msg: string;
begin
  msg:= 'Был клик по компоненту:' + #13#10;
  msg:= msg + 'Номер: ' + IntToStr(WizardForm.ComponentsList.ItemIndex) + #13#10;
  msg:= msg + 'Описание: ' + WizardForm.ComponentsList.ItemCaption[WizardForm.ComponentsList.ItemIndex];
  MsgBox(msg, mbInformation, MB_OK);
end;
procedure InitializeWizard();
begin
  WizardForm.ComponentsList.OnClickCheck:= @ClickCheck;
end;
Аватара пользователя
A1EXXX

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение A1EXXX »

В чём может быть трабла: когда задаю StatusLabel.Caption:=WizardForm.StatusLabel.Caption, лэйбл пустой, т.е. текст почему-то не подхватывается... а если делаю, к примеру, так: StatusLabel.Caption:='Распаковка файлов...', то текст есть... Но мне нужно, чтобы текст именно подхватывался, а не прописывался вручную... как исправить? Изображение
Аватара пользователя
BlackSelf

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение BlackSelf »

A1EXXX, а откуда он должен подхватываться? Из Russian.isl? Так там нет строки StatusLabel, поэтому лэйбл и пустой.
Аватара пользователя
STRELOK

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение STRELOK »

Цитата R.i.m.s.k.y.:



И заодно подскажите, как поменять текст на странице приветсвия?
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




WelcomeLabel1.Caption:= 'бла-бла-бла'

WelcomeLabel2.Caption:= 'бла-бла-бла'



или так





Код:

Код: Выделить всё

WelcomeLabel2:=TLabel.Create(WizardForm); 
with WelcomeLabel2 do 
begin 
  Top:= ScaleY(270); 
  Left:= ScaleX(70); 
  Width:= ScaleX(650); 
  Height:= ScaleY(200); 
  AutoSize:= false; 
  WordWrap:= true; 
  Font.Name:= 'Georgia'; 
  Font.Size:= 11 
  Font.Style := [fsBold, fsItalic]; 
  Font.Color:=ClWhite; 
  Transparent:= true; 
  Parent:= WizardForm.WelcomePage; 
  Caption:= 'Отключите всю байду, чтоб игра нормально проинсталлилась'; 
end;
Аватара пользователя
A1EXXX

Re: [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Сообщение A1EXXX »

Подскажите как реализовать вот такую установку



Заранее спасибо за ответ
Ответить

Вернуться в «Автоматическая установка приложений»