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

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

Автор: NightW0lf
Дата сообщения: 25.03.2007 12:47
Sero

Цитата:
Хотите код?

ДА
Автор: Sero
Дата сообщения: 25.03.2007 12:58
NightW0lf
Код сдесь ,пароль ru-board
Автор: NightW0lf
Дата сообщения: 25.03.2007 16:48
Привет ВСЕМ!
Я вот прочитал руководство расширенным возможностям Inno Setup 5 v5.0 - и захотел попробывать шифрование новым способом через массив.
Кто нибудь может подсказать как мне узнать что вводить в этой секции [где MyArray[хх]] если мой пароль состоит из 10 разных символов?


Код:
if CurPageID = wpPassword then
begin
WizardForm.PasswordEdit.Text:= MyArray[8]+MyArray[39]+MyArray[39]+MyArray[8]+MyArray[39]+MyArray[39] +
IntToStr(StrToInt(str) - StrToInt(GetDateTimeString('ss', #0, #0)));
WizardForm.NextButton.OnClick(WizardForm.NextButton);
Автор: Nagual
Дата сообщения: 25.03.2007 23:00
интересует такой вопрос
метод шифрования через md5
можно ли вставить пароль в инсталляху, используя md5-сумму предыдущей откомпилированной инсталляхи?
Автор: Jeff_Trust
Дата сообщения: 25.03.2007 23:45
Sero
Пасиб, вроде пашет. ТОка есть одна трабла, сначала в Инно идет страница где можно переипеновать заданное по умолчанию имя папки в Пуске, а тока затем идет чекбокс в котором идет выбор вообще была бы папка в меню Пуск. Логичнее было бы если значала бы шел чекбокс, а тока потом если в нем выбрано создать ярлыки в меню Пуск шла страница в которой можно переименовать эту папку в меню Пуск. Не подскажешь как такое можно сделать?
Автор: Sero
Дата сообщения: 26.03.2007 13:17
Jeff_Trust

Цитата:
ТОка есть одна трабла, сначала в Инно идет страница где можно переипеновать заданное по умолчанию имя папки в Пуске, а тока затем идет чекбокс в котором идет выбор вообще была бы папка в меню Пуск. Логичнее было бы если значала бы шел чекбокс, а тока потом если в нем выбрано создать ярлыки в меню Пуск шла страница в которой можно переименовать эту папку в меню Пуск. Не подскажешь как такое можно сделать?


Вариантов нет.
Автор: PSKOVMAIL
Дата сообщения: 26.03.2007 20:52
procedure CreateTheWizardPages;
var
Label1: TLabel;
Page: TWizardPage;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;

begin
Page := CreateCustomPage(wpWelcome, 'Регистрация', 'Введите серийный номер');

Label1 := TLabel.Create(Page);
Label1.Left := ScaleX(16);
Label1.Top := ScaleY(136);
Label1.Width := ScaleX(37);
Label1.Height := ScaleY(13);
Label1.Caption := 'Введите серийный номер напечатанный на диске с игрой';
Label1.Font.Color := -16777208;
Label1.Font.Height := ScaleY(-11);
Label1.Font.Name := 'Tahoma';
Label1.Font.Style := [fsBold];
Label1.Parent := Page.Surface;

Edit1 := TEdit.Create(Page);
Edit1.Left := ScaleX(16);
Edit1.Top := ScaleY(168);
Edit1.Width := ScaleX(65);
Edit1.Height := ScaleY(24);
Edit1.Text := 'QPM5';
Edit1.Font.Color := -16777208;
Edit1.Font.Height := ScaleY(-13);
Edit1.Font.Name := 'Tahoma';
Edit1.MaxLength := 4;
Edit1.Parent := Page.Surface;

Edit2 := TEdit.Create(Page);
Edit2.Left := ScaleX(96);
Edit2.Top := ScaleY(168);
Edit2.Width := ScaleX(65);
Edit2.Height := ScaleY(24);
Edit2.Text := 'WVXF';
Edit2.Font.Color := -16777208;
Edit2.Font.Height := ScaleY(-13);
Edit2.Font.Name := 'Tahoma';
Edit2.MaxLength := 4;
Edit2.Parent := Page.Surface;

Edit3 := TEdit.Create(Page);
Edit3.Left := ScaleX(176);
Edit3.Top := ScaleY(168);
Edit3.Width := ScaleX(65);
Edit3.Height := ScaleY(24);
Edit3.Text := 'GYTQ';
Edit3.Font.Color := -16777208;
Edit3.Font.Height := ScaleY(-13);
Edit3.Font.Name := 'Tahoma';
Edit3.MaxLength := 4;
Edit3.Parent := Page.Surface;

Edit4 := TEdit.Create(Page);
Edit4.Left := ScaleX(256);
Edit4.Top := ScaleY(168);
Edit4.Width := ScaleX(65);
Edit4.Height := ScaleY(24);
Edit4.Text := 'H43G';
Edit4.Font.Color := -16777208;
Edit4.Font.Height := ScaleY(-13);
Edit4.Font.Name := 'Tahoma';
Edit4.MaxLength := 4;
Edit4.Parent := Page.Surface;

Edit5 := TEdit.Create(Page);
Edit5.Left := ScaleX(336);
Edit5.Top := ScaleY(168);
Edit5.Width := ScaleX(65);
Edit5.Height := ScaleY(24);
Edit5.Text := 'XZS2';
Edit5.Font.Color := -16777208;
Edit5.Font.Height := ScaleY(-13);
Edit5.Font.Name := 'Tahoma';
Edit5.MaxLength := 4;
Edit5.Parent := Page.Surface;
end;


Создал вот такую страничку с проверкой серийного номера подскажите как сделать,чтобы кнопка Next была активной только в том случе если правильно заполнены все поля
Автор: fty
Дата сообщения: 27.03.2007 08:52
Подскажите, как реализовать следующее.
Нужно в имеющийся файл User.ini вставить четыре строки. Вообще-то, секция [INI] хелпа довольно проста, однако проблема в том, что все четыре строки одинаковые, "Backgrounds", отличаются только их значения:
Backgrounds=2k4Menus.Loading.loadingscreen1
Backgrounds=2k4Menus.Loading.loadingscreen2
Backgrounds=2k4Menus.Loading.loadingscreen3
Backgrounds=2k4Menus.Loading.loadingscreen4

Вот, что я написал:
Filename: "{app}\System\User.ini"; Section: "GUI2K4.UT2K4ServerLoading"; Key: "Backgrounds"; String: "2k4Menus.Loading.loadingscreen1"
Filename: "{app}\System\User.ini"; Section: "GUI2K4.UT2K4ServerLoading"; Key: "Backgrounds"; String: "2k4Menus.Loading.loadingscreen2"
Filename: "{app}\System\User.ini"; Section: "GUI2K4.UT2K4ServerLoading"; Key: "Backgrounds"; String: "2k4Menus.Loading.loadingscreen3"
Filename: "{app}\System\User.ini"; Section: "GUI2K4.UT2K4ServerLoading"; Key: "Backgrounds"; String: "2k4Menus.Loading.loadingscreen4"

Но в результате добавляется только одна, последняя по порядку, строка.
Что нужно, чтобы добавились все четыре?
Автор: GloThin
Дата сообщения: 27.03.2007 09:21
fty
10:52 27-03-2007
Цитата:

Но в результате добавляется только одна, последняя по порядку, строка.
Что нужно, чтобы добавились все четыре?

Ты структру INI-файла вообще хоть понимаешь?
Любой ключ в любой секции может быть тока в одном экземпляре, то есть имя ключа в каждой секции должно быть уникальным.
А в твоем скрипте не происходит ничего странного в том, что добавляется тока 4-я строка(последняя), точнее сказать, добавляются то все, тока каждая последующая перезаписывает предыдущую, а в итоге остается последняя. Можешь проверить моё утверждение сам(Убери последнюю строку и запусти - получишь все равно содержание последней строки).
Насчет того,чтобы записались все 4 строки, можно сделать тока, чтоб у них было разное имя.
Автор: fty
Дата сообщения: 27.03.2007 11:27
GloThin

Цитата:
Ты структру INI-файла вообще хоть понимаешь? ... чтобы записались все 4 строки, можно сделать тока, чтоб у них было разное имя


Мне нужно именно ТО, что я написал. Я понимаю, что обычными методами это НЕВОЗМОЖНО сделать. ПОЭТОМУ я сюда и обратился. Возможно есть какой-нибудь способ через [Code], я не знаю, и в Паскале ничего не понимаю.
Но если кто-то знает решение, помогите, пожалуйста.
Автор: GloThin
Дата сообщения: 27.03.2007 12:40
fty
13:27 27-03-2007
Цитата:
GloThin
Мне нужно именно ТО, что я написал. Я понимаю, что обычными методами это НЕВОЗМОЖНО сделать. ПОЭТОМУ я сюда и обратился. Возможно есть какой-нибудь способ через [Code], я не знаю, и в Паскале ничего не понимаю.
Но если кто-то знает решение, помогите, пожалуйста.

Секция "CODE" тут врядли поможет...
Конечно, можна вручную прописать 4 одинаковых по имени ключа в секцию, и запустить программу, тока еще не факт, что она возьмет из ини-файла нужное значение, скорее всего будет читать тока первое. Вручную это пробовал?

Объясни лучше,для чего это вообще нужно?
Может найдется другое решение...
Автор: maxdddca123
Дата сообщения: 27.03.2007 15:01
fty
Есть ф-ция SaveStringToFile, попробуй через неё !
Автор: fty
Дата сообщения: 27.03.2007 15:23
GloThin

Цитата:
Объясни лучше,для чего это вообще нужно?


Делаю инсталлятор для "Unreal Tournament 2004 + моды + карты", упомянутый файл User.ini - один из файлов, где хранятся настройки. Данные строки, "Backgrounds", действительно существуют в нескольких экземплярах - это заставки экрана, появляющиеся в случайном порядке при загрузке карт.

maxdddca123
В хелпе нашел:
SaveStringToFile('c:\filename.txt', #13#10 + 'the string' + #13#10, True);
Но как сделать, чтобы добавилось не просто в конец файла, а в нужный раздел?
Автор: GloThin
Дата сообщения: 27.03.2007 17:28
fty
17:23 27-03-2007
Цитата:
Делаю инсталлятор для "Unreal Tournament 2004 + моды + карты", упомянутый файл User.ini - один из файлов, где хранятся настройки. Данные строки, "Backgrounds", действительно существуют в нескольких экземплярах - это заставки экрана, появляющиеся в случайном порядке при загрузке карт.

Еще вопрос:
Данный файл User.ini необходимо изменять при устаноыке или достаточно инсталлировать уже готовый?
Если нет необходимости его модифицировать при установке, то напиши его вручную и включи в инсталятор.
Автор: fty
Дата сообщения: 28.03.2007 08:47
GloThin

Цитата:
напиши его вручную и включи в инсталятор

Похоже, у меня другого выхода и нет, как это сделать, хотя есть еще метод- изменить файл User.ini после установки вручную.
А вообще-то жаль, что в Inno Setup нету в [INI] такого флага, типа "CreateInAnyCase"- "Создать в любом случае".
Автор: Chuvakstepan
Дата сообщения: 29.03.2007 09:12
Доброго времени суток
Нужна ваша помощь:
Надо сделать так, чтобы на странице выбора папки установки проверялось, есть ли в пути файла русские символы, если есть, то вылетает messagebox с просьбой изменить папку назначения
Автор: CapsLosk
Дата сообщения: 29.03.2007 09:34
Не вкурсе - последний INNO не поддерживает отключение надписи названии программы на фонофом окне?
P/S белый шрифт на синем фоне
Автор: Drez
Дата сообщения: 29.03.2007 13:28
Вопрос: как сдклать два прогресс бара, чтобы а одном отображался общий ход установки, во втором ход установки конкретного файла?
Автор: Nagual
Дата сообщения: 29.03.2007 13:40
интересуют такие вопросы, размер модуля инсталлятора и способы его уменьшения
возможно ли на странице приветствия делать ссылки кликабельными?
Автор: boss911
Дата сообщения: 29.03.2007 18:28
Скажите, пожалуйста, как добиться того, чтоб кнопка "Далее" становилась, не активна, когда не выбран ни один компонент [Components] во время установки? Честно говоря, нет ни какого смысла ставить, то, что не чего не выбрано, то есть получиться один деинсталлятор будет!
Автор: CapsLosk
Дата сообщения: 30.03.2007 02:27
Nagual

Цитата:
возможно ли на странице приветствия делать ссылки кликабельными?



procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox('Это демо версия программы.', mbInformation, mb_Ok);
end;

procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.innosetup.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
var
AboutButton, CancelButton: TButton;
URLLabel: TNewStaticText;
BackgroundBitmapImage: TBitmapImage;
BackgroundBitmapText: TNewStaticText;

begin
CancelButton := WizardForm.CancelButton;
AboutButton := TButton.Create(WizardForm);
AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;
AboutButton.Top := CancelButton.Top;
AboutButton.Width := CancelButton.Width;
AboutButton.Height := CancelButton.Height;
AboutButton.Caption := '&About...';
AboutButton.OnClick := @AboutButtonOnClick;
AboutButton.Parent := WizardForm;

URLLabel := TNewStaticText.Create(WizardForm);
URLLabel.Caption := 'www.innosetup.com';
URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := WizardForm;
{ Alter Font *after* setting Parent so the correct defaults are inherited first }
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clBlue;
URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);

BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Left := 50;
BackgroundBitmapImage.Top := 100;
BackgroundBitmapImage.AutoSize := True;
BackgroundBitmapImage.Bitmap := WizardForm.WizardBitmapImage.Bitmap;
BackgroundBitmapImage.Parent := MainForm;

BackgroundBitmapText := TNewStaticText.Create(MainForm);
BackgroundBitmapText.Left := BackgroundBitmapImage.Left;
BackgroundBitmapText.Top := BackgroundBitmapImage.Top + BackgroundBitmapImage.Height + ScaleY(8);
BackgroundBitmapText.Caption := 'TBitmapImage';
BackgroundBitmapText.Parent := MainForm;
end;
Автор: Dima555555
Дата сообщения: 30.03.2007 12:49
Народ вот чтот я не пойму как правильно делать собираю прогу беру из реестра файлы те которые если я удалю прога не зарегеной становица беру это reg файл переношу в ISTool всё собираю удаляю уже установленную прогу чистю реестр всё далее ставлю свою сборку она ставица зарегенная далее даю кому нить и не у кого она не зарегена а у меня норм ((( чтото я не так делаю ?
Автор: Chuvakstepan
Дата сообщения: 30.03.2007 12:53
Никто не подскажет по этому вопросу?


Цитата:
Надо сделать так, чтобы на странице выбора папки установки проверялось, есть ли в пути файла русские символы, если есть, то вылетает messagebox с просьбой изменить папку назначения

Автор: Sero
Дата сообщения: 30.03.2007 15:28
boss911

Цитата:
Скажите, пожалуйста, как добиться того, чтоб кнопка "Далее" становилась, не активна, когда не выбран ни один компонент [Components] во время установки? Честно говоря, нет ни какого смысла ставить, то, что не чего не выбрано, то есть получиться один деинсталлятор будет!

Можно просто использовать флаг fixed для компонентов которые нужно установить.
Автор: Nagual
Дата сообщения: 30.03.2007 15:54
CapsLosk
ух как много кода ок спс потесчу
Автор: boss911
Дата сообщения: 30.03.2007 16:45
Dima555555

Цитата:
всё далее ставлю свою сборку она ставица зарегенная далее даю кому нить и не у кого она не зарегена а у меня норм

Это, может, означать то, что серийник сгенерирован на твоей машине, а на другой он уже не работает! У самого есть пару подобных программ, так приходится компилировать вместе с генератором (crack).



Sero

Цитата:
Можно просто использовать флаг fixed

Можно, но это не тот случай! Нужно, чтоб все компоненты были доступны для выбора!
Автор: Dima555555
Дата сообщения: 30.03.2007 18:57
boss911


Цитата:
так приходится компилировать вместе с генератором (crack).


а поподробней
Автор: Chuvakstepan
Дата сообщения: 30.03.2007 19:07
А никто мне не сможет мне помочь?


Цитата:
Надо сделать так, чтобы на странице выбора папки установки проверялось, есть ли в пути файла русские символы, если есть, то вылетает messagebox с просьбой изменить папку назначения

Автор: Dima555555
Дата сообщения: 30.03.2007 19:36
Chuvakstepan не спамь твоё сообщение есть выше...
Автор: Genri
Дата сообщения: 30.03.2007 20:24
boss911
Цитата:
как добиться того, чтоб кнопка "Далее" становилась, не активна, когда не выбран ни один компонент

Вариант 1:

Код:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:= True;
if WizardSelectedComponents(False) = '' then
begin
MsgBox('Не выбран ни один компонент!', mbInformation, MB_OK);
Result:= False;
end;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: ICONS


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