Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
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;
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
Как сделать чтобы ПЕРЕД или ВКОНЦЕ предлагало установку дополнительных елементов ????
После компиляции скрипта , при запуске программы, она не отрабатывает некоторые секции.
Вот исходный скрипт :
; 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.
Буду очень благодарен, ибо написание новой страницы с выбором папки установки дается очень тяжело
я так полагаю в 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
Как сделать чтобі картинка в инсталяторе біла на весь инсталятор и только на первой странице ???
как сделать чтобы инсталятор не спрашивал если папка уже существует а просто ставил туда куда положено.?
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.