Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 [118] 119 120 121 122 123 124 125 126

vvVVvv VV vvVVvv
16-12-2017, 10:05
StimCheck это внутреннее название переключателя, как он у вас называется я не знаю, нужно в скрипте смотреть.
Если у вас есть переключение между взломанной и стим, значит есть и эти переключатели.
Выбрали стим, данные файлы не установились, выбрали взломанную, файлы установились в нужное место, куда укажете путь.
Ничего сложного. »
Я вас понял,написал вам в лс.

ZVSRus
16-12-2017, 11:56
vvVVvv VV vvVVvv Отправил.

vvVVvv VV vvVVvv
16-12-2017, 14:12
Отправил. »
Спасибо,всё работает.

ENERGES
17-12-2017, 15:23
как кнопку Обзор.... передвинуть чуть чуть верх, https://s8.hostingkartinok.com/uploads/images/2017/12/d205422447e8594af3f952a1911e7bc8.png
http://rgho.st/8TsjZx2Y6

Ivn78
17-12-2017, 15:32
Все привет.
В инсталляторе при определенных условиях создается кастомная страница. Как в дальнейшем коде проверить, существует она или нет?


Или, если проще, можно создавать страницу в любом случае, но при определенных условиях как ее пропустить?

ZVSRus
17-12-2017, 16:20
В инсталляторе при определенных условиях создается кастомная страница.

Костомная страница автоматом не создаётся, её нужно самому создавать, и уже потом при определённых условиях показывать её или нет.


как кнопку Обзор.... передвинуть чуть чуть верх

Зайди в папку modules, открой form.iss найди строку 356 with WizardForm.DirBrowseButton do

Замени Top := ScaleY(115); на Top := ScaleY(112); это координаты отступа сверху.

Как поднять или опустить не вопрос, вопрос в том пойди найди нужный компонент в этих джунглях!

ENERGES
17-12-2017, 16:34
ZVSRus,
как указать свой размер игры в скрипте?
https://s8.hostingkartinok.com/uploads/images/2017/12/cfa52decae8427f8dea1fa963a131aea.png

Ivn78
17-12-2017, 16:41
Костомная страница автоматом не создаётся, её нужно самому создавать, и уже потом при определённых условиях показывать её или нет. »
эмм... ровно это и написано.
В инсталляторе при определенных условиях создается кастомная страница »
я сам ее создаю при определенных условиях. Вопрос в том, чтобы в дальнейшем коде проверять не все условия, при которых она была (или не была) создана, а проверить само ее существование. Типа
if CustomPade then begin

ZVSRus
17-12-2017, 16:53
как указать свой размер игры в скрипте?


Если имеется ввиду на той же странице где и кнопка, объём игры и требуется для установки
тогда это в скрипте в самом верху что красным шрифтом

//===== [Need Size] =====\\:
#define NeedSize "10240" = это объём игры
//===== [Game Size] =====\\:
#define TotalNeedSize "10240" = требуется для установки

10240 = запись в мегабайтах

ZVSRus
17-12-2017, 17:27
я сам ее создаю при определенных условиях.

Это как? Я в свои рукоделиях костомную страницу создаю не при каких определенных условиях, а просто ручками в нужном месте, ну например после страницы приветствия, а на стр. приветствия создаю те определенные условия как вы выражаетесь, при которых показывать эту страницу или нет. Пропускать страницы это выражение для стандартных страниц, для костомной страницы более правильное выражение скрывать или показывать. То что вы привели if CustomPade then begin и далее какие то действия, то это более подойдёт к самой костомной странице, то есть какие то компоненты на данной странице скрывать или показывать.

PS. Ну а вообще я не до конца понял суть вопроса.

Ivn78
17-12-2017, 17:43
ZVSRus,
Страница создается скажем при наличии ключа в реестре. Если ключа нет, она не создается. Далее в коде (уже совсем в другом месте, скажем, на ssDone при нажатом чекбоксе на той самой странице происходит еще что-то. Проблема возникает, если на ssDone идет обращение к чекбоксу страницы, которая ввиду условий не была создана. Это все упрощенно, условий для создания страницы больше

Повторюсь, может проще ее создавать изначально, но при тех же условиях ее просто не показывать ( пропускать)

ZVSRus
17-12-2017, 18:22
Страница создается скажем при наличии ключа в реестре. Если ключа нет, она не создается.

Первый раз слышу чтобы Если ключа нет, она не создается если ключ есть то она создается.
Костомная страница при наличии ключа сама не создастся, её нужно изначально ручками создавать. А уже потом написать функцию для ключа в реестре, в функции прописать если ключ в реестре есть страницу показывать, ключа в реестре нет страницу не показывать.


Это все упрощенно, условий для создания страницы больше

Условий для создания костомной страницы автоматом я не знаю и нигде не встречал, ввиду того что создания страниц как вы описываете не существует. Пример, создалась у вас при наличии ключа в реестре страница автоматом, что и на ней уже существуют чекбоксы, лейблы, все те компоненты какие вы желаете видеть? Ну да ладно!!!

Ivn78
17-12-2017, 23:31
ZVSRus,
немного мы не понимаем друг друга, ну да ладно
procedure CreatePageUPnP();
begin
UPnPPage := CreateCustomPage(PgID, ExpandConstant('{cm:UPnPDlgCaption}'), ExpandConstant('{cm:UPnPDlgDescription}'));
Header := TNewStaticText.Create(UPnPPage);
Header.Parent := UPnPPage.Surface;
Header.SetBounds(0, 0, WizardForm.InnerNotebook.Width, ScaleY(110));
Header.Autosize := False;
Header.WordWrap := True;
Header.Caption := ExpandConstant('{cm:UPnPDlgExplanation}');
UPnPCheck := TCheckBox.Create(WizardForm);
with UPnPCheck do begin
Parent := UPnPPage.Surface;
Left := ScaleX(0);
Top := ScaleY(212);
Caption := ExpandConstant('{cm:UPnPDlgConfigure}');
Width := ScaleX(300);
Checked := True;
End;
if UPnPConfigure then UPnPCheck.State := cbUnChecked else UPnPCheck.State := cbChecked;
end;

procedure InitializeWizard();
begin
if AskedUPnPConfigure then CreatePageUPnP();
end;

Я не писал, что страница создается автоматом. Я писал, что команда на ее создание отправляется только при определенных условиях.
если ключ в реестре есть страницу показывать, ключа в реестре нет страницу не показывать »
Это как можно сделать?

El Sanchez
18-12-2017, 09:32
Я не писал, что страница создается автоматом. Я писал, что команда на ее создание отправляется только при определенных условиях. »
Ivn78, создавайте страницу в любом случае, ее показ регулируйте в ShouldSkipPage:

procedure InitializeWizard;
begin
CreatePageUPnP();
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False;
case PageID of
UPnPPage.ID:
Result := not AskedUPnPConfigure;
end;
end;

Ivn78
19-12-2017, 13:13
Прошу помощи. Нужно организовать проверку установленной версии IE.
HKLM, 'SOFTWARE\Microsoft\Internet Explorer', 'Version'
значение вида 7.0.5730.13. Как сделать, чтобы если первая цифра (число до первой точки) этого значения меньше 8, то выполнять действия?

nik1967
19-12-2017, 21:45
Ivn78,
[Setup]
AppName = MyApp
AppVerName = MyApp
DefaultDirname = {pf}\MyApp
OutputDir=.

[code]
var
NVersion: String;

function InitializeSetup: Boolean;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Internet Explorer', 'Version', NVersion);
Delete(NVersion, 2, Length(NVersion));
if StrToInt(NVersion) < 8 then begin
MsgBox('Пора бы обновить', mbInformation, MB_OK);
Result:= false;
end else begin
MsgBox('IE в норме', mbInformation, MB_OK);
Result:= true;
end;
end;

Ivn78
19-12-2017, 22:35
nik1967,
а как быть, если первое число двухзначное? сейчас получается, что 10<8

nik1967
19-12-2017, 23:24
Ivn78,
[Setup]
AppName = MyApp
AppVerName = MyApp
DefaultDirname = {pf}\MyApp
OutputDir=.

[code]
var
NVersion: String;
Tochka: Integer;

function InitializeSetup: Boolean;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Internet Explorer', 'Version', NVersion);
Tochka:= Pos('.', NVersion);
Delete(NVersion, Tochka, Length(NVersion));
if StrToInt(NVersion) < 8 then begin
MsgBox('Пора бы обновить', mbInformation, MB_OK);
Result:= false;
end else begin
MsgBox('IE в норме', mbInformation, MB_OK);
Result:= true;
end;
end;

ENERGES
20-12-2017, 08:37
подскажите пожалуйста как удалить название игры в этом пункте https://s8.hostingkartinok.com/uploads/images/2017/12/9c12122ccdeb6ed4d6523cf32e281622.png
http://rgho.st/8TsjZx2Y6

Nordek
20-12-2017, 12:28
подскажите пожалуйста как удалить название игры в этом пункте »
Если: "SelectDirLabel3=Программа установит [name] в следующую папку." - То соответственно:

[Languages]
Name: en; MessagesFile: compiler:Default.isl
Name: ru; MessagesFile: compiler:Languages\Russian.isl

[Messages]
ru.SelectDirLabel3=Программа установит в следующую папку.
en.SelectDirLabel3=Setup will install into the following folder.
- Всё просто.




© OSzone.net 2001-2012