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

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

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

Сообщение Rikill »

R.i.m.s.k.y., я думаю ещё можно привязать к Check, было бы удобнее
Аватара пользователя
insombia

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

Сообщение insombia »

R.i.m.s.k.y., спасибо, всё работает)





У меня еще один вопрос. Как в область, которая выделена на изображении, добавить текст?


читать дальше »


Изображение





Вот код


читать дальше »







Цитата:



;-------CD-Key------------



[Messages]

ClickNext=Вы должны ввести серийный номер, чтобы продолжить, или «Отмена», чтобы выйти из программы установки.



; заносим данные в реестр, 1 вариант

[Registry]

Root: HKLM; SubKey: SOFTWARE\Activision\Call of Duty 4; Flags: uninsdeletekey

Root: HKLM; SubKey: SOFTWARE\Activision\Call of Duty 4; ValueType: string; ValueName: codkey; ValueData: {code:edtText}; Flags: uninsclearvalue


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


var

  edt:array [1..5] of TEdit;

  txt: TNewStaticText;

  i, e, t: integer;

  NewPage: TWizardPage;

  lbl: TLabel;

procedure CurPageChanged1(CurPageID: Integer);

begin

  if CurPageID = NewPage.ID then

end;





function edtText(s: string): string; //этот вариант, при записи через секцию [Registry]

//function edtText: string; // а этот, если вносить запись через 2 вариант

//var                       //

//  s: string;              //

begin

{ получаем текст из edit'ов и присваем переменной s }

  for i:= 1 to 5 do begin

    s:= s + edt[i].Text;

  end;

  { удаляем лишний знак тире в конце строки }

  s:= Copy(s, 1, Length(s) - 1);

  Result:= s;

end;



//procedure CurStepChanged(CurStep: TSetupStep);

//begin

// { занасим данные в реестр 2 вариант}

//  If CurStep = ssDone then

//  RegWriteStringValue(HKEY_CURRENT_USER, 'Software\My Program\Settings', 'Serial', edtText);

//end;



//procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);

//begin

// { удаляем данные из реестра, 2 вариант

//  Здесь надо быть очень внимательным, а то по неосторожности можно удалить весь раздел... [img]images/smilies/new/smile.gif[/img] }

//  If CurUninstallStep = usDone then

//  RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\My Program');

//end;



procedure edtKeyPress(Sender: TObject; var Key: Char);

begin

{ здесь попытался реализовать, чтоб курсор автоматом перескакивал на следующий edit при вводе,

 но есть косяк, если начать удалять через Backspace, то из-за SetFocus курсор снова перескакивает на уже очищенный edit }

  for i:= 1 to 4 do begin



  end;    end;





procedure SerialPage;

begin

  NewPage:= CreateCustomPage(wpWelcome, 'Ввод кюча (CD-key)', 'Ключ диска нужен для игры по интернету');



  WizardForm.NextButton.Enabled:= False;

  t:= 57;

  e:= t;

  // создаём Label

  lbl:=TLabel.Create(NewPage);

    with lbl do begin

      Left:= 0;

      Top:= 0;

      Width:= 417;

      Height:= 28;

      AutoSize:= False;

      WordWrap:= True;

      Caption:= 'Введите код, отпечатанный на последней странице обложки Руководства пользователя или на упаковке диска';

      Parent:= NewPage.Surface;

    end;







  // создаём 5 edit'ов

  for i:= 1 to 5 do begin

  edt[i]:= TEdit.Create(NewPage);

    with edt[i] do begin

      Parent:= NewPage.Surface;

      Left:= 0 + (e*i);

      Top:= 47;

      Width:= 47;

      Height:= 21;

      MaxLength:= 4;

      OnKeyPress:= @edtKeyPress;

     

    end;

  end;

end;



 



procedure InitializeWizard();

begin

  SerialPage;

end;
Аватара пользователя
actavir

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

Сообщение actavir »

Цитата actavir:



R.i.m.s.k.y., огромное спасибо!!!
Скрипты Inno Setup. Помощь и советы [часть 3]





Цитата aerh:



R.i.m.s.k.y., спасибо, всё работает)
Скрипты Inno Setup. Помощь и советы [часть 3]




Давим внизу сообщения "Полезное сообщение"


Цитата aerh:



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




В шапке Inno form Designer

В нем формы рисуются как в ворде (ну почти)
Аватара пользователя
insombia

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

Сообщение insombia »

Rikill может потому-что я не комплиировал игру а просто файлы для инно?
Аватара пользователя
insombia

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

Сообщение insombia »

vint56 а как ты сделал на начальной и финишной страничке что текст большой а то у меня он маленький некоторым людям сложно увидеть что там написано вот скрин
твоего репака
Аватара пользователя
insombia

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

Сообщение insombia »

Кто может прикрутить такую верхнюю панель(Где типа закрыть-свернуть)
http://uaimage.com/gallery/b5073689
в мой скрипт
http://rghost.ru/18157871


вот скрипт с которого это хотелось бы прифигачить
http://inno.at.ua/load/0-0-0-122-20
Аватара пользователя
Gugle

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

Сообщение Gugle »

El Sanchez, R.i.m.s.k.y., спасибо большое. Пошел разбираться.
Аватара пользователя
insombia

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

Сообщение insombia »

Цитата ksunechkin:



скрипт - при такой компиляции выдает ошибку на дублирование функиций
Скрипты Inno Setup. Помощь и советы [часть 3]




Ну а в чем ошибка? естественно не должно быть двух одноименных функций, ошибки тут нет.


Цитата ksunechkin:



как разделить эти функции ? или сделать невозможность дублирования функций
Скрипты Inno Setup. Помощь и советы [часть 3]




Элементарно склеить вместе



Код:

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

function NextButtonClick(CurPageID: Integer): Boolean;
var
  i, n: Integer;
  str: string;
begin
  Result:= True;
  if CurPageID = wpSelectDir then
    begin
      str:= WizardForm.DirEdit.Text;
      for i:= 1 to Length(str) do if str[i] = '\' then n:= n + 1;
      if (n = 1) and (Pos(ExpandConstant('{pf}\'), WizardForm.DirEdit.Text) > 0) then
        begin
          text.Caption:= 'Внимание, в "Program Files" устанавливать нельзя.';
          Result:= False;
        end
      else text.Caption:= '';
    end; //CurPageID = wpSelectDir 
  Result := True;
  if (CurPageID = wpSelectComponents) and (IsComponentSelected('d') = False) 
  and (IsComponentSelected('d\a') = False) and (IsComponentSelected('d\b') = False) 
  and (IsComponentSelected('d\c') = False) and (IsComponentSelected('d\d') = False)
  and (IsComponentSelected('d\e') = False) and (IsComponentSelected('d\f') = False)
  and (IsComponentSelected('d\g') = False) and (IsComponentSelected('d\a') = False) then
  begin
    MsgBox('Не выбрано ни одиного протокола для установки!!!', mbInformation, MB_OK);
    Result := False;
  end; //(CurPageID = wpSelectComponents) and (IsComponentSelected('d') = False)
end; //NextButtonClick
Аватара пользователя
Rikill

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

Сообщение Rikill »

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



Элементарно склеить вместе
Скрипты Inno Setup. Помощь и советы [часть 3]




ну вот это я как раз и не зналд как сделать....вписал ваш склееный код, ошибка




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

Compiling 
 
 Код: [url=#][/url]
 [code] section
---------------------
Compile Error!
Line: 140
Error: Column 11:
Unknown identifier 'text'



а по первому вопросу не подскажете?


Цитата:



Подскажите как сделать в инсталляторе "невозможность установки в определенный каталог" (в частности в program files - желательно с выводом сообщения или просто вывод сообщения о нежжелательности/невозможности установки в program files.
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

Цитата ChVL:



Как прописать удаление этой строки при деинсталляции программы
Скрипты Inno Setup. Помощь и советы [часть 3]




примерно так:



Код:

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

[_code]
procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
  S: TArrayOfString;
  //str : string;
  i : Integer;
begin
  if not FileExists(FilePath) then begin MsgBox('Файл не найден ' + FilePath, mbError, mb_Ok); Exit;end; // если файла нет, выходим
  LoadStringsFromFile(FilePath, S); // загружаем файл
  for i:= 0 to GetArrayLength(S)-1 do begin
    if (Pos(AnsiUpperCase(find), AnsiUpperCase(S[i])) > 0) then begin
      StringChangeEx(S[i], find, replace, True);
    end;
  end;
  SaveStringsToFile(FilePath, S, False); // сохраняем файл
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usDone then RePlaceTextinFile(ExpandConstant('{sys}\drivers\etc\hosts'), '127.0.0.1 www.site.com', '');
end;


Цитата ksunechkin:



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




знал бы подсказал


Цитата ksunechkin:



ну вот это я как раз и не зналд как сделать....вписал ваш склееный код, ошибка
Скрипты Inno Setup. Помощь и советы [часть 3]




а самому догадаться слабо что не хватает var text: TLabel;

я ведь только функцию NextButtonClick склеил, тупо скопировать-вставить.
Ответить

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