Kotyarko_O 1,906 #259954 Posted March 24, 2015 (edited) Хотя одно и тоже почти Почти. В моём варианте сохранится набор выбранных компонентов прошлой установки. Здесь оговаривалось. Edited March 24, 2015 by Kotyarko_O 2 Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #259956 Posted March 24, 2015 [Code] Procedure CurStepChanged(CurStep: TSetupStep); var Reg, UninstallPath: String; ResultCode: Integer; begin if CurStep = ssInstall then begin Reg := ExpandConstant('Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1'); if RegValueExists(HKLM, Reg, 'UninstallString') then RegQueryStringValue(HKLM, Reg, 'UninstallString', UninstallPath); if Length(UninstallPath) > 0 then begin case MsgBoxEx(WizardForm.Handle, 'Рекомендуется удалить ранее установленную версию сборки.' + #13#10 + 'Хотите сделать это сейчас?', '...', MB_YESNO or MB_ICONQUESTION, 0, 0) of IDYES: Exec(RemoveQuotes(ExpandConstant(UninstallPath)), '/SILENT /SUPPRESSMSGBOXES', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); IDNO: Exit; end; end; end; end; Пробуй. p.s. немного подправил. С П А С И Б О! Я так и хотел! Ранее выбранные элементы сохраняються как активные!!!!!!!! Тогда ещё : "Рекомендуется удалить ранее .... и т.д" как отредактировать текст? 1 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #259958 Posted March 24, 2015 (edited) Тогда ещё : "Рекомендуется удалить ранее .... и т.д" как отредактировать текст? Здесь текст, который будет отображаться в диалоговом окне: 'Рекомендуется удалить ранее установленную версию сборки.' + #13#10 + 'Хотите сделать это сейчас?', Здесь текст заголовка окна: '...', Edited March 24, 2015 by Kotyarko_O 1 Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #259959 Posted March 24, 2015 Здесь текст, который будет отображаться в диалоговом окне: 'Рекомендуется удалить ранее установленную версию сборки.' + #13#10 + 'Хотите сделать это сейчас?', Здесь текст заголовка окна: '...', Блин сорри не увидел! Ещё раз Спасибо! Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #259963 Posted March 24, 2015 (edited) Почти. В моём варианте сохранится набор выбранных компонентов прошлой установки. Здесь оговаривалось. ну или так procedure CurPageChanged(CurPageID: Integer); var Reg, UninstallPath: String; ResultCode: Integer; begin if CurPageID = 1 then begin Reg := ExpandConstant('Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppID")}_is1'); if RegValueExists(HKLM, Reg, 'UninstallString') then RegQueryStringValue(HKLM, Reg, 'UninstallString', UninstallPath); if Length(UninstallPath) > 0 then begin case MsgBoxEx(WizardForm.Handle, 'Рекомендуется удалить ранее установленную версию сборки.' + #13#10 + 'Хотите сделать это сейчас?', '...', MB_YESNO or MB_ICONQUESTION, 0, 0) of IDYES: Exec(RemoveQuotes(ExpandConstant(UninstallPath)), '/SILENT /SUPPRESSMSGBOXES', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); IDNO: Exit; end; end; end; end; Edited March 24, 2015 by ♫♫♫Dark_Knight_MiX♫♫♫ Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #259965 Posted March 24, 2015 (edited) Можно ещё, убрать это окно, что-бы не появлялось или автоматом говорила "Да"? т.к. появляется: если запускаешь второй раз и компонент не выбираешь, а выбираешь другой. Хотя уже всё удалил ранее.. Edited March 24, 2015 by sergey spb Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #259967 Posted March 24, 2015 Можно ещё, убрать это окно, что-бы не появлялось или автоматом говорила "Да"? т.к. появляется: если запускаешь второй раз и компонент не выбираешь, а выбираешь другой. Хотя уже всё удалил ранее.. Flags: disablenouninstallwarning; Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #259968 Posted March 24, 2015 Можно ещё, убрать это окно, что-бы не появлялось? Flags: disablenouninstallwarning Каждому компоненту. 2 Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #259970 Posted March 24, 2015 Flags: disablenouninstallwarning Каждому компоненту. Благодарю! Всё получилось, главное каждому компоненту! .... всё спать. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #259972 Posted March 24, 2015 главное каждому компоненту! ага Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #260010 Posted March 25, 2015 (edited) Добрый день! Проблема в установки шрифта в систему Win7: Source: "dynamic.otf"; DestDir: "{fonts}"; Flags: onlyifdoesntexist uninsneveruninstall fontisnttruetype; FontInstall: "dynamic"; Components: Sh; Проблема такая-же и так делал. Сделал, вроде работает: Source: "dynamic.otf"; DestDir: "{fonts}"; Flags: fontisnttruetype; FontInstall: "dynamic" Edited March 25, 2015 by sergey spb Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #260152 Posted March 26, 2015 (edited) Добрый день! Не подскажите, как убрать это окно? Спасибо! Разобралcя: DirExistsWarning=no Edited March 26, 2015 by sergey spb Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #260153 Posted March 26, 2015 @sergey spb, [Setup] DirExistsWarning=no Обо всех параметрах секции [setup] написано в справке. 1 Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #260155 Posted March 26, 2015 @sergey spb, [Setup] DirExistsWarning=no Обо всех параметрах секции [setup] написано в справке. Спасибо уже нашёл! А не подскажешь как поменять надпись: Взято от сюда: #define SourceDir "res_mods"; #define BackupDir "old_res_mods"; [setup] AppName=Test AppVersion=1.5 DefaultDirName={pf}\Test OutputDir=. var BackupCheck: TCheckBox;procedure CopyFiles(FromPlace, ToPlace: String);var ResultCode: Integer;begin Exec('xcopy.exe', '/E /C /H /R /Y /F /I ' + AddQuotes(FromPlace) + ' ' + AddQuotes(ToPlace), ExpandConstant('{app}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);end;procedure BackupCheckCreate();begin BackupCheck:=TCheckBox.Create(WizardForm); with BackupCheck do begin Parent:=WizardForm.SelectDirPage; SetBounds(ScaleX(WizardForm.DirEdit.Left), ScaleY(WizardForm.DirEdit.Top + 40), ScaleX(WizardForm.DirEdit.Width), ScaleY(15)); Caption:='Сохранить резервную копию перезаписываемых файлов'; Checked:=True; end;end;procedure BackUp(CurStep: TSetupStep);var ThereIsFolders: Boolean;begin if BackupCheck.Checked then begin ThereIsFolders:=(DirExists(AddBackslash(WizardDirValue()) + '{#SourceDir}') and (not DirExists(AddBackslash(WizardDirValue()) + '{#BackupDir}')) ); if ThereIsFolders then if CurStep=ssInstall then begin WizardForm.ProgressGauge.Hide; WizardForm.StatusLabel.Caption:='Создание резервных копий файлов...'; CopyFiles(ExpandConstant('{app}') + '\{#SourceDir}\*.*', ExpandConstant('{app}') + '\{#BackupDir}'); WizardForm.ProgressGauge.Show; WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles); end; end;end;procedure InitializeWizard();begin BackupCheckCreate();end;procedure CurStepChanged(CurStep: TSetupStep);begin BackUp(CurStep);end;procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);begin if CurUninstallStep = usPostUninstall then begin CopyFiles(ExpandConstant('{app}') + '\{#BackupDir}\*.*', ExpandConstant('{app}') + '\{#SourceDir}'); DelTree(ExpandConstant('{app}') + '\{#BackupDir}', True, True, True); end;end; Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #260161 Posted March 26, 2015 А не подскажешь как поменять надпись Caption:='Сохранить резервную копию перезаписываемых файлов'; Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #260171 Posted March 26, 2015 Caption:='Сохранить резервную копию перезаписываемых файлов'; Не то, делал! Там написано: Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #260172 Posted March 26, 2015 @sergey spb, значит кусок кода, который ты привёл, к этому чекбоксу не относится. 1 Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #260203 Posted March 26, 2015 @sergey spb, значит кусок кода, который ты привёл, к этому чекбоксу не относится. Спасибо!!!! Может в "Messages.iss" прописать, или хотя бы, где искать? Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #260204 Posted March 26, 2015 (edited) Может в "Messages.iss" прописать, или хотя бы, где искать? Не знаю, я же не вижу код. Ctrl + F поможет. Edited March 26, 2015 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #260208 Posted March 26, 2015 (edited) Не знаю, я же не вижу код. Ctrl + F поможет. Ок, если что, завтра скину всё (если не трудо взгляни)! А пока сам попробую. Спасибо! Всё поменялось. Edited March 27, 2015 by sergey spb Quote Share this post Link to post Short link Share on other sites