Скрипты Inno Setup. Помощь и советы [часть 3]
-
Rikill
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
R.i.m.s.k.y., я думаю ещё можно привязать к Check, было бы удобнее
-
insombia
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
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
У меня еще один вопрос. Как в область, которая выделена на изображении, добавить текст?
читать дальше »

Вот код
читать дальше »
Цитата:
;-------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:
R.i.m.s.k.y., огромное спасибо!!!
Цитата aerh:
R.i.m.s.k.y., спасибо, всё работает)
Давим внизу сообщения "Полезное сообщение"
Цитата aerh:
Как в область, которая выделена на изображении, добавить текст?
В шапке Inno form Designer
В нем формы рисуются как в ворде (ну почти)
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]
Rikill может потому-что я не комплиировал игру а просто файлы для инно?
-
insombia
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
vint56 а как ты сделал на начальной и финишной страничке что текст большой а то у меня он маленький некоторым людям сложно увидеть что там написано вот скрин
твоего репака
-
insombia
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Кто может прикрутить такую верхнюю панель(Где типа закрыть-свернуть)
вот скрипт с которого это хотелось бы прифигачить
http://uaimage.com/gallery/b5073689
в мой скрипт http://rghost.ru/18157871
вот скрипт с которого это хотелось бы прифигачить
http://inno.at.ua/load/0-0-0-122-20
-
Gugle
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
El Sanchez, R.i.m.s.k.y., спасибо большое. Пошел разбираться.
-
insombia
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Цитата ksunechkin:
скрипт - при такой компиляции выдает ошибку на дублирование функиций
Ну а в чем ошибка? естественно не должно быть двух одноименных функций, ошибки тут нет.
Цитата 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]
Цитата R.i.m.s.k.y.:
Элементарно склеить вместе
ну вот это я как раз и не зналд как сделать....вписал ваш склееный код, ошибка
а по первому вопросу не подскажете?
Цитата:
Подскажите как сделать в инсталляторе "невозможность установки в определенный каталог" (в частности в program files - желательно с выводом сообщения или просто вывод сообщения о нежжелательности/невозможности установки в program files.
Элементарно склеить вместе
Скрипты 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]
Цитата ChVL:
Как прописать удаление этой строки при деинсталляции программы
примерно так:
Код:
Цитата ksunechkin:
по первому вопросу не подскажете
знал бы подсказал
Цитата ksunechkin:
ну вот это я как раз и не зналд как сделать....вписал ваш склееный код, ошибка
а самому догадаться слабо что не хватает var text: TLabel;
я ведь только функцию NextButtonClick склеил, тупо скопировать-вставить.
Как прописать удаление этой строки при деинсталляции программы
Скрипты 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 склеил, тупо скопировать-вставить.