Войти

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


Страниц : 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 127 128 129 130 131 [132] 133

necromanster
05-11-2010, 18:28
Пробуйте так:
Код:
[Registry]
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks; Flags: uninsdeletekeyifempty;
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; ValueType: string; ValueName: Installed »

Спасибо большее. Теперь все работает. И на семерке, и на ХР. Респект, и уважуха.

serg aka lain
05-11-2010, 19:44
Всё хорошо, вот только текстура отображается и на странице завершения установки где самой кнопки нет и быть не должно . Можно ли как-то отключить LoadButtonImage(WizardForm.CancelButton,bidCancel) ? »
а зачем вы её загружаете ещё один раз?, она и так там есть.
если вы меняете положение кнопки Cancel, то и меняйте положение ButtonPanel.
выбросите вот это LoadButtonImage(WizardForm.CancelButton,bidCancel),
и добавьте новое положение ButtonPanel:

WizardForm.CancelButton.Left := ScaleX(122);
WizardForm.CancelButton.Top := ScaleY(70);
ButtonPanel[bidCancel].Left := WizardForm.CancelButton.Left;
ButtonPanel[bidCancel].Top := WizardForm.CancelButton.Top;

by_pbh
06-11-2010, 15:08
when i try to compile FreeArc_Example.iss gives me this error
http://i55.tinypic.com/2vmd7gl.jpg

serg aka lain
06-11-2010, 16:39
when i try to compile FreeArc_Example.iss gives me this error »
Perhaps you need to remove duplicate "PAnsiChar" identifiers

STRAYKER
06-11-2010, 19:00
Как сделать чтобы ПЕРЕД или ВКОНЦЕ предлагало установку дополнительных елементов ????

shao
06-11-2010, 20:08
После компиляции скрипта , при запуске программы, она не отрабатывает некоторые секции.

Вот исходный скрипт :

; InnoSetupVersion=5.3.10 (Unicode)

[Setup]
AppName=XXX
AppVerName=XXX
DefaultDirName={pf}\XXX
DefaultGroupName=XXX
OutputBaseFilename=setup
Compression=lzma
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Files]
Source: "{app}\XXX"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Resources\XXX"; DestDir: "{app}\Resources"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Resources\XXX"; DestDir: "{app}\Resources"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Resources\XXX"; DestDir: "{app}\Resources"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Resources\taskbar_groupmenu.png"; DestDir: "{app}\Resources"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Resources\XXX"; DestDir: "{app}\Resources"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{userappdata}\XXX"; DestDir: "{userappdata}\XXX"; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{userappdata}\XXX"; DestDir: "{userappdata}\XXX"; MinVersion: 0.0,5.0; Flags: ignoreversion

[Registry]
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueName: "XXX"; ValueType: String; ValueData: "C:\Program Files\XXX"; MinVersion: 0.0,5.0; Flags: uninsdeletevalue uninsdeletekeyifempty

[Run]
Filename: "{app}\XXX"; Description: "{cm:LaunchProgram,XXX}"; Flags: nowait postinstall

[UninstallRun]
Filename: "{sys}\CMD.EXE"; Parameters: "/c TASKKILL /F /IM XXX"; Flags: runhidden

[UninstallDelete]
Type: filesandordirs ; Name: "{app}\XXX"
Type: filesandordirs ; Name: "{userappdata}\XXX"
Type: files ; Name: "{app}\XXX"

и так далее....


То , что выделено , почему-то теряется при компиляции скрипта.
То есть , если "вытянуть" скрипт из уже созданного инсталлятора ,
то эти выделенные места отсутствуют.

Может кто-нибудь знает в чём дело ?

serg aka lain
07-11-2010, 00:19
Как сделать чтобы ПЕРЕД или ВКОНЦЕ предлагало установку дополнительных елементов ???? »
воспользоваться процедурой CurStepChanged

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
// запуск дополнительных действий
end;

Pilotfcsm
07-11-2010, 20:37
Подскажите пожалуйста, можно ли поменять местами существующие страницы, конкретно мне нужно чтобы выбор компонентов был до выбора куда ставить программу. То есть как нить поменять местами wpSelectComponents и wpSelectDir.

Буду очень благодарен, ибо написание новой страницы с выбором папки установки дается очень тяжело

Arsi000
07-11-2010, 21:08
я так полагаю в inno не получится сделать нативный 64 битный установщик или есть всё же какие нибудь способы?

serg aka lain
07-11-2010, 21:32
Подскажите пожалуйста, можно ли поменять местами существующие страницы »
Стандартным способом, конечно, нельзя.
Но если очень надо, то можно. (з.ы. пример написан не мной)

[Setup]
AppName=My program
AppVerName=My program 1.5
DefaultDirName={pf}\My program
;DisableDirPage=True

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

[Components]
Name: WB; Description: 'Мой компьютер' - Настройки; ExtraDiskSpaceRequired: 1048576

[Code]
function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir: if WizardForm.Tag = 1 then
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents)
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption; // запомнить SetupMessage(msgSelectDirDesc)
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc)
end;
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WizardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir)
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint // иначе вместо названия программы [name]
end;
end;
End;

Procedure InitializeWizard;
Begin
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage
End;


я так полагаю в inno не получится сделать нативный 64 битный установщик или есть всё же какие нибудь способы? »
В папке с примерами "C:\Program Files\Inno Setup 5\Examples\",
есть пример 64Bit.iss, возможно это он.

Pilotfcsm
07-11-2010, 21:59
serg aka lain, спасибо большое!

Henry_Townsend
08-11-2010, 13:58
Доброго времени суток. Я тут с немного дурацким вопросом - как лучше организовать упаковку файлов
precompresor+arc+inno setup? Я где-то на форуме уже встречал подобный вопрос, но вот найти никак не могу :(

STRAYKER
08-11-2010, 14:27
Как сделать чтобы ПЕРЕД или ВКОНЦЕ предлагало установку дополнительных елементов ????

R.i.m.s.k.y.
08-11-2010, 14:35
Как сделать чтобы ПЕРЕД или ВКОНЦЕ предлагало установку дополнительных елементов ???? »
Читаем в хелпе про раздел Tasks, в конце - секция Run и флаг postinstall

Katyushka
08-11-2010, 15:18
Здравствуйте!
У меня выбирается галочкой необходимые программы. Подскажите пожалуйста как сделать, чтобы если у меня setup.exe не выбрана, то в Run запускалась одна программа и если setup.exe выбрана, то запускалась бы эта setup?
Вот мой код:
[Components]
Name: main; Description: Описание1; Flags: checkablealone; Types: custom compact full
Name: Component1; Description: Описание2; Flags: checkablealone; Types: full
Name: Component2; Description: Описание3; Flags: checkablealone; Types: full

[Files]
Source: "C:\Users\Prog.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: main
Source: "C:\Users\Prog2.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: Component1
Source: "C:\Users\Setup.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: Component2;

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
;Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Flags: nowait postinstall skipifsilent
Filename: "{app}\Setup.exe"; Description: "View the README file"; Flags: waituntilterminated

На данный момент, если setup.exe не выбрана, то выскакивает ошибка после установки, что файл не существует.

R.i.m.s.k.y.
08-11-2010, 15:24
Подскажите пожалуйста как сделать, чтобы если у меня setup.exe не выбрана »
Components: Component1 or (not Component2);

STRAYKER
08-11-2010, 15:29
Как сделать чтобі картинка в инсталяторе біла на весь инсталятор и только на первой странице ???

Arsi000
08-11-2010, 15:33
как сделать чтобы инсталятор не спрашивал если папка уже существует а просто ставил туда куда положено.?

R.i.m.s.k.y.
08-11-2010, 15:34
как сделать чтобы инсталятор не спрашивал если папка уже существует а просто ставил туда куда положено.? »
[Setup]
EnableDirDoesntExistWarning=false

Katyushka
08-11-2010, 15:39
Components: Component1 or (not Component2); »
Подскажите еще где именно эту строчку нужно прописать?




© OSzone.net 2001-2012