Ru-Board.club
← Вернуться в раздел «Программы»

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

Автор: rusz13
Дата сообщения: 22.08.2007 09:31
Всем спасибо за помощь, нашел решение:

WizardForm.ActiveControl := WizardForm.BackButton;
Автор: Chuvakstepan
Дата сообщения: 22.08.2007 09:39
rusz13
У меня что-то не работает, дай всю процедуру пожалуйста
Хочу проверить
Автор: rusz13
Дата сообщения: 22.08.2007 09:44
procedure CurPageChanged(CurPageID: Integer);
begin
if (CurPageID=wpLicense) then
begin
WizardForm.ActiveControl := WizardForm.BackButton;
end;
end;
Автор: BruteForce
Дата сообщения: 22.08.2007 09:49

Цитата:
BruteForce
Скачайте отсюда... http://data.cod.ru/32617102794
Так не подойдёт? Строки помечены в секции [Code], смотрите самый верх скрипта.


Спасибо ОГРОМНОЕ
Всё работает.
Автор: Chuvakstepan
Дата сообщения: 22.08.2007 09:49
rusz13
После нажатия на чекбокс, кнопка далее становится активной. Решение от iTASmania_Inc вполне работает.
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 09:53
BruteForce

Цитата:
Спасибо ОГРОМНОЕ

Не за что! Не могли бы Вы сказать, правильно ли подсчитан объём ОЗУ и виртуальнорй памяти, просто у одного моего знакомого вместо 1 Гига - 1022Мб?
Скрипт переписывал от Corona_Skin, вроде всё чисто, но вдруг ошибка?

rusz13
Почему-то не работает, а в другие процедуры Вы ничего не дописывали?

Добавлено:
Chuvakstepan

Цитата:
После нажатия на чекбокс

Это радио-батон (RadioButton) - чек-боксы на странице лицензии стандартно можно в NSIS увидеть!
Автор: rusz13
Дата сообщения: 22.08.2007 10:04
Chuvakstepan

Цитата:
После нажатия на чекбокс

Дело в том что у меня уже установлен чекбокс "Я согласен"

procedure InitializeWizard();
begin
WizardForm.LicenseAcceptedRadio.Checked:=True;
end;

Мне нужно было чтобы юзер не мог перейти сразу Enter'ом

iTASmania_Inc
А что именно не работает, ошибка или кнопка back не становится активной?
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 10:07
rusz13

Цитата:
Дело в том что у меня уже установлен чекбокс "Я согласен"

А-а, понятно, просто я делел скрипт для отмеченного по умолчанию радио-батона (Я не согласен....)
Очевидно, и Chuvakstepan тоже.
Автор: Forslay
Дата сообщения: 22.08.2007 11:06
А нельзя ли замутить так, что бы... Юзер сначала должен прочитать полностью, (пролистнуть в самый конец лицензию), а только потом, что бы появился дальнейшее действие.? Если можно то как?
Автор: Sero
Дата сообщения: 22.08.2007 11:23
iTASmania_Inc

Цитата:
чек-боксы на странице лицензии стандартно можно в NSIS увидеть!

В Inno тоже можно сделать одним чек-боксом!
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 11:28
Sero
Подчёркиваю: СТАНДАРТНО в NSIS можно выбирать - чек-боксы или радио-батоны!
В Inno СТАНДАРТНО только радио-батоны, см. Setup.e32
Хотя, разумеется, в Inno можно самому что угодно и не угодно доделать!
Автор: 4esnok
Дата сообщения: 22.08.2007 13:10
А, как сделать чтоб например серийник или ник, как в скрипте Chuvakstepan, добавлялся например не в реестр, а в определённый файлик?
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 13:57
4esnok
SaveStringToFile - надо читать хелп, там подробно всё изложено!
[more=Пример]
[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"


[Code]
var
SerialEdit1, SerialEdit2, SerialEdit3, SerialEdit4, SerialEdit5, SerialEditUSER : TEdit;
StaticText, StaticText1, StaticText2, StaticText23 : TNewStaticText;
Chert, Chert2, Chert3, Chert4 : TLabel;
Page: TWizardPage;

function CheckSerialPage(wpCheckSerial123: Integer): Integer;
begin
Page := CreateCustomPage(wpInstalling,'Информация о пользователе','Пожалуйста введите данные о себе');

StaticText:=TNewStaticText.Create(Page);
with StaticText do
begin
Parent:=Page.Surface;
Caption:='Ключ:';
Left:=0;
Top:=130;
AutoSize:=True;
end;

StaticText23:=TNewStaticText.Create(Page);
with StaticText23 do
begin
Parent:=Page.Surface;
Caption:='Имя пользователя:';
Left:=0;
Top:=60;
AutoSize:=True;
end;


StaticText1:=TNewStaticText.Create(Page);
with StaticText1 do
begin
Parent:=Page.Surface;
Caption:='Для игры в Counter-Strike по сети Интернет, пожалуйста, введите желаемое имя пользователя и соотвествующий ключ, указанный на коробке';
Left:=0;
Top:=0;
AutoSize:=False;
Height:=40;
Width:=400;
WordWrap:=True;
end;

StaticText2:=TNewStaticText.Create(Page);
with StaticText2 do
begin
Parent:=Page.Surface;
Caption:='Когда вы будете готовы продолжить установку, нажмите "Далее"';
Left:=0;
Top:=210;
AutoSize:=False;
Height:=80;
Width:=400;
WordWrap:=True;
end;

SerialEdit1:=TEdit.Create(Page)
with SerialEdit1 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=10;
Top:=150;
AutoSize:=False;
Height:=25;
Width:=65;
MaxLength:=5;
end;


SerialEdit2:=TEdit.Create(Page)
with SerialEdit2 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit1.Left + 80;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEdit3:=TEdit.Create(Page)
with SerialEdit3 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit2.Left + 80;;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEdit4:=TEdit.Create(Page)
with SerialEdit4 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit3.Left + 80;;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEdit5:=TEdit.Create(Page)
with SerialEdit5 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit4.Left + 80;;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEditUSER:=TEdit.Create(Page)
with SerialEditUSER do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit1.Left;
Top:=80;
AutoSize:=True;
Height:=25;
Width:=385;
end;

Chert:=TLabel.Create(Page)
with Chert do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=80;
Top:=150;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Chert2:=TLabel.Create(Page)
with Chert2 do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=Chert.Left + 80;
Top:=Chert.Top;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Chert3:=TLabel.Create(Page)
with Chert3 do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=Chert2.Left + 80;
Top:=Chert.Top;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Chert4:=TLabel.Create(Page)
with Chert4 do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=Chert3.Left + 80;
Top:=Chert.Top;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Result := Page.ID;
end;

procedure InitializeWizard();
begin
CheckSerialPage(wpInstalling);
end;

function NextButtonClick(CurPage: Integer): Boolean;
begin
Result := true;
If CurPage=Page.ID then
begin
SaveStringToFile('C:\Temp\1.txt', SerialEditUSER.Text + #13#10, True)
SaveStringToFile('C:\Temp\1.txt', SerialEdit1.Text + '-' + SerialEdit2.Text + '-' + SerialEdit3.Text + '-' + SerialEdit4.Text + '-' + SerialEdit5.Text + #13#10, True)
end;
end;
[/more]
Смотри(те) самый конец скрипта, там как раз показано использование функции.

Добавлено:
2ALL
А можно ли изменить параметры скролл-баров на TMemo?
Вообще можно ли их указать?
Например, WizardForm.LicenseMemo - для мемки, а как для скролов?
Автор: omals
Дата сообщения: 22.08.2007 14:17
в
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usUninstall then
begin
// тут код запуска FireFox
// затем вывожу месагу
BringToFrontAndRestore;
MsgBox('For correct uninstalling you must close FireFox windows' , mbInformation, MB_OK);
end;
end;

проблема в том, что месага спратана под окном FireFox
и BringToFrontAndRestore не помогает
как ее (месагу) поставить поверх всех других окон???
Автор: Chuvakstepan
Дата сообщения: 22.08.2007 14:30
iTASmania_Inc
Memo.ScrollBars:=ssBoth
Memo.ScrollBars:=ssHorizontal
Memo.ScrollBars:=ssVertical
Memo.ScrollBars:=ssNone
По-моему всё
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 14:34
Chuvakstepan
Спасибо, только я это знал!
Эти команды отвечают за показ/непоказ полос прокрутки - а мне надо, типа, минимальное значение (когда скрол вверху), максимальное (скрол до предела к низу) и тому подобное.
Только мне кажется, что такие параметры не задать.
Автор: Chuvakstepan
Дата сообщения: 22.08.2007 14:42
iTASmania_Inc
К твоему сожалению ты прав
Других параметров у ТМемо насчёт скроллов не существует, в отличии от ТForm
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 17:34
2ALL
Подскажите, пожалуйста, можно ли привязать форму (ТForm) к инсталлу, как компонент?
Чтобы не было кнопок минимизации и закрытия окна и т.д.
Автор: Sero
Дата сообщения: 22.08.2007 17:46
iTASmania_Inc

Цитата:
Хотя, разумеется, в Inno можно самому что угодно и не угодно доделать!


я об этом и говорю!
Автор: RRRRR
Дата сообщения: 22.08.2007 17:51
Перезалейте русификатор для версии 5.13
Автор: 4esnok
Дата сообщения: 22.08.2007 18:44
iTASmania_Inc, а как сделать если в файле написано например: name "player" а мне его нужно заменить на имя вписанное при инсталляции, например User, соответственно в файле должно быть переписано name "player" на name "User", как это сделать?Незнаю помогите
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 18:54
4esnok
А файл-то можно удалить - потом создать новый и в него всё прописать!

function NextButtonClick(CurPage: Integer): Boolean;
begin
Result := true;
If CurPage=Page.ID then
begin
DeleteFile('C:\Temp\1.txt') // Удаление файла
SaveStringToFile('C:\Temp\1.txt', SerialEditUSER.Text + #13#10, True)
SaveStringToFile('C:\Temp\1.txt', SerialEdit1.Text + '-' + SerialEdit2.Text + '-' + SerialEdit3.Text + '-' + SerialEdit4.Text + '-' + SerialEdit5.Text + #13#10, True)
end;
end;

Так подойдёт?
Автор: 4esnok
Дата сообщения: 22.08.2007 19:06
iTASmania_Inc Проблема в том что там много параметров, и этот один из них
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 19:08
4esnok
А можно пример такого файла поглядеть?
Автор: 4esnok
Дата сообщения: 22.08.2007 19:12
Да, вот он http://www.rapidshare.ru/378935 там в конце надо заменить, и чтобы он заменил его в директории установки...
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 19:58
4esnok
Сразу оговорюсь, что работает только в твоём (Вашем) файле (про Pos я думаю не надо объяснять):
[more=Пример]
[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: "config.cfg"; DestDir: "{app}";

[Code]
var
SerialEdit1, SerialEdit2, SerialEdit3, SerialEdit4, SerialEdit5, SerialEditUSER : TEdit;
StaticText, StaticText1, StaticText2, StaticText23 : TNewStaticText;
Chert, Chert2, Chert3, Chert4 : TLabel;
Page: TWizardPage;

function CheckSerialPage(wpCheckSerial123: Integer): Integer;
begin
Page := CreateCustomPage(wpInstalling,'Информация о пользователе','Пожалуйста введите данные о себе');

StaticText:=TNewStaticText.Create(Page);
with StaticText do
begin
Parent:=Page.Surface;
Caption:='Ключ:';
Left:=0;
Top:=130;
AutoSize:=True;
end;

StaticText23:=TNewStaticText.Create(Page);
with StaticText23 do
begin
Parent:=Page.Surface;
Caption:='Имя пользователя:';
Left:=0;
Top:=60;
AutoSize:=True;
end;


StaticText1:=TNewStaticText.Create(Page);
with StaticText1 do
begin
Parent:=Page.Surface;
Caption:='Для игры в Counter-Strike по сети Интернет, пожалуйста, введите желаемое имя пользователя и соотвествующий ключ, указанный на коробке';
Left:=0;
Top:=0;
AutoSize:=False;
Height:=40;
Width:=400;
WordWrap:=True;
end;

StaticText2:=TNewStaticText.Create(Page);
with StaticText2 do
begin
Parent:=Page.Surface;
Caption:='Когда вы будете готовы продолжить установку, нажмите "Далее"';
Left:=0;
Top:=210;
AutoSize:=False;
Height:=80;
Width:=400;
WordWrap:=True;
end;

SerialEdit1:=TEdit.Create(Page)
with SerialEdit1 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=10;
Top:=150;
AutoSize:=False;
Height:=25;
Width:=65;
MaxLength:=5;
end;


SerialEdit2:=TEdit.Create(Page)
with SerialEdit2 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit1.Left + 80;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEdit3:=TEdit.Create(Page)
with SerialEdit3 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit2.Left + 80;;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEdit4:=TEdit.Create(Page)
with SerialEdit4 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit3.Left + 80;;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEdit5:=TEdit.Create(Page)
with SerialEdit5 do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit4.Left + 80;;
Top:=SerialEdit1.Top;
AutoSize:=True;
Height:=25;
Width:=65;
MaxLength:=5;
end;

SerialEditUSER:=TEdit.Create(Page)
with SerialEditUSER do
begin
Font.Name:='Arial';
Font.Size:=12;
Parent:=Page.Surface;
Left:=SerialEdit1.Left;
Top:=80;
AutoSize:=True;
Height:=25;
Width:=385;
end;

Chert:=TLabel.Create(Page)
with Chert do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=80;
Top:=150;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Chert2:=TLabel.Create(Page)
with Chert2 do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=Chert.Left + 80;
Top:=Chert.Top;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Chert3:=TLabel.Create(Page)
with Chert3 do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=Chert2.Left + 80;
Top:=Chert.Top;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Chert4:=TLabel.Create(Page)
with Chert4 do
begin
Font.Name:='Arial';
Font.Size:=14;
Parent:=Page.Surface;
Left:=Chert3.Left + 80;
Top:=Chert.Top;
AutoSize:=True;
Caption:='-';
Enabled:=True;
end;

Result := Page.ID;
end;

procedure InitializeWizard();
begin
CheckSerialPage(wpInstalling);
end;

function NextButtonClick(CurPage: Integer): Boolean;
var
S1, S2, S3: String;
begin
Result := true;
If CurPage = Page.ID then
begin
LoadStringFromFile(ExpandConstant('{app}\config.cfg'), S1)
S3 := 'cmdrate "30"'
S2 := Copy(S1, 1, Pos(S3, S1) + 18)
Delete(S1, 1, Pos(S3, S1) + 18)
Delete(S1, 1, Pos('"', S1) - 1)
S2 := S2 + SerialEditUSER.Text + S1
DeleteFile(ExpandConstant('{app}\config.cfg'))
SaveStringToFile(ExpandConstant('{app}\config.cfg'), S2, True)
end;
end;
[/more]
Автор: 4esnok
Дата сообщения: 22.08.2007 20:30
Ого классс! Спасибо Супер большое iTASmania_Inc


iTASmania_Inc только непойму, прописал в начале {app}\config.cfg а оно что то не добавляет и не изменяет файл, а мне нужно чтобы оно изменяло в папке установки
Автор: Chuvakstepan
Дата сообщения: 22.08.2007 21:05
4esnok
впиши {src}\config.cfg вместо {app}\config.cfg
Автор: iTASmania_Inc
Дата сообщения: 22.08.2007 21:13
4esnok
Смотри пример выше, я его чуть подправил, а файл config.cfg положи рядом со скриптом.

Добавлено:
Chuvakstepan
Опередил!
Автор: 4esnok
Дата сообщения: 22.08.2007 21:16
iTASmania_Inc Во ты меня правельно понял СПАСИБО БОЛЬШОЕ ЕЩЁ РАЗ

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.