|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Ветеран Сообщения: 857
|
Профиль | Отправить PM | Цитировать vadjliss, Сделайте вот так и все поймете.
[Files] Source: "ваша папка портабл\*"; DestDir: "{app}"; Check: "not IsChecked"; Flags: ignoreversion createallsubdirs recursesubdirs Source: "ваша папка не портабл\*"; DestDir: "{app}"; Check: "IsChecked"; Flags: ignoreversion createallsubdirs recursesubdirs Цитата vadjliss:
|
|
------- Отправлено: 22:24, 02-08-2015 | #841 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 96
|
спасибо всё как надо
|
Отправлено: 05:58, 03-08-2015 | #842 |
Забанен Сообщения: 96
|
да и ещё не могу понять как поменять иконки на свой
Скрытый текст
[Setup]
AppName=My Program AppVerName=My Program DefaultDirName={pf}\My Program OutputDir=. Uninstallable=IsChecked CreateUninstallRegKey=IsChecked [Languages] Name: ru; MessagesFile: compiler:Languages\Russian.isl; [Tasks] ; Дополнительно ; Ярлык(и) на «Рабочем столе» Name: "desktopicon"; Description: "Ярлык(и) на «Рабочем столе»"; GroupDescription: "Дополнительно:"; Check: IsChecked ; Ярлыки в меню «Пуск» Name: "starticon"; Description: "Ярлыки в меню «Пуск»"; GroupDescription: "Дополнительно:"; Check: IsChecked [Icons] Name: "{group}\My Program"; Filename: "{uninstallexe}"; Tasks: starticon; Check: not IsChecked Name: "{commondesktop}\My Program"; Filename: "{uninstallexe}"; Tasks: desktopicon; Check: IsChecked [Files] ; Файлы для проверки и демонстрации. При реальном использовании - закомментировать или удалить! Source: {win}\Help\*; DestDir: {app}; Flags: external recursesubdirs [CustomMessages] HeaderLabelPage=Выбор типа установки LabelPage=Выберите нужный тип установки MyRadioCaption_1=Распаковка MyRadioCaption_2=Обычная установка PageTextHeader=На этой странице Вы можете выбрать тип установки, который для Вас наиболее удобен. MyText_1=Будет произведена распаковка в паку,%nуказанную на следующей странице MyText_2=Будет произведена стандартная установка Extracted=Распаковка — %1 ExtractedFolder=Выбор папки распаковки ExtractedFolder2=В какую папку вы хотите распаковать %1? ExtractedFolder3=Программа распакует %1 в следующую папку. ExtractedFolder4=Программа установит %1 в следующую папку. Installing=Распаковка... InstallingLabel=Пожалуйста, подождите, пока %1 распакуется на ваш компьютер. FinishedHeadingLabel=Завершение распаковки%n%1 FinishedLabelNoIcons=Программа %1 распакована на Ваш компьютер.%n%nНажмите «Завершить», чтобы выйти из программы распаковки. [UninstallDelete] Type: filesandordirs; Name: {app} [code] const DI_NORMAL = 3; var MyNewPage: TWizardPage; Rect: TRect; HIcon: LongInt; AIconFileName: String; MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton; function GetModuleHandle(lpModuleName: LongInt): LongInt; external 'GetModuleHandleA@kernel32.dll stdcall'; function ExtractIcon(hInst: LongInt; lpszExeFileName: AnsiString; nIconIndex: LongInt): LongInt; external 'ExtractIconA@shell32.dll stdcall'; function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth, cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;external 'DrawIconEx@user32.dll stdcall'; function DestroyIcon(hIcon: LongInt): LongInt; external 'DestroyIcon@user32.dll stdcall'; function IsChecked: Boolean; begin Result:= MyRadioBtn_2.checked; end; procedure RadBtnOnClick(Sender: TObject); begin case Sender of MyRadioBtn_1: begin WizardForm.Caption:= FmtMessage(ExpandConstant('{cm:Extracted}'), [ExpandConstant('{#SetupSetting("AppName")}')]); WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder3}'), [ExpandConstant('{#SetupSetting("AppName")}')]); end; MyRadioBtn_2: begin WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]); WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder4}'), [ExpandConstant('{#SetupSetting("AppName")}')]); end; end; end; procedure GetInstTypePage(); begin MyNewPage:= CreateCustomPage(wpWelcome, ExpandConstant('{cm:HeaderLabelPage}'), ExpandConstant('{cm:LabelPage}')); try // в конкретном примере из этого файла (C:\Windows\System32\shell32.dll) берём иконки, для пробного показа. // Можно использовать обычные .ico AIconFileName:= ExpandConstant('{sys}\shell32.dll'); // Rect.Left:= 0; Rect.Top:= 0; Rect.Right:= 32; Rect.Bottom:= 32; hIcon:= ExtractIcon(GetModuleHandle(0), AIconFileName, 26); try with TBitmapImage.Create(WizardForm) do begin Left:= ScaleX(15); Top:= ScaleY(68); Width:= 32; Height:= 32; with Bitmap do begin Width:= 32; Height:= 32; Canvas.Brush.Color:= clBtnFace; Canvas.FillRect(Rect); DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL); end; Parent:= MyNewPage.Surface; end; finally DestroyIcon(hIcon); end; hIcon:= ExtractIcon(GetModuleHandle(0), AIconFileName, 19); try with TBitmapImage.Create(WizardForm) do begin Left:= ScaleX(15); Top:= ScaleY(138); Width:= 32; Height:= 32; with Bitmap do begin Width:= 32; Height:= 32; Canvas.Brush.Color:= clBtnFace; Canvas.FillRect(Rect); DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL); end; Parent:= MyNewPage.Surface; end; finally DestroyIcon(hIcon); end; except end; with TNewStaticText.Create(WizardForm) do begin Width:= WizardForm.InnerNotebook.Width; Height:= ScaleY(26); WordWrap:= True; Caption:= ExpandConstant('{cm:PageTextHeader}'); Parent:= MyNewPage.Surface; end; MyRadioBtn_1:= TNewRadioButton.Create(WizardForm); with MyRadioBtn_1 do begin Top:= ScaleY(50); Width:= ScaleX(150); Caption:= ExpandConstant('{cm:MyRadioCaption_1}'); OnClick:= @RadBtnOnClick; Parent:= MyNewPage.Surface; end; with TNewStaticText.Create(WizardForm) do begin Left:= ScaleX(60); Top:= ScaleY(68); Width:= WizardForm.InnerNotebook.Width - ScaleX(60); Height:= ScaleY(26); WordWrap:= True; Caption:= ExpandConstant('{cm:MyText_1}'); Parent:= MyNewPage.Surface; end; MyRadioBtn_2:= TNewRadioButton.Create(WizardForm); with MyRadioBtn_2 do begin Top:= ScaleY(120); Width:= ScaleX(150); Caption:= ExpandConstant('{cm:MyRadioCaption_2}'); Checked:= True; OnClick:= @RadBtnOnClick; Parent:= MyNewPage.Surface; end; with TNewStaticText.Create(WizardForm) do begin Left:= ScaleX(60); Top:= ScaleY(138); Width:= WizardForm.InnerNotebook.Width - ScaleX(60); Height:= ScaleY(26); WordWrap:= True; Caption:= ExpandConstant('{cm:MyText_2}'); Parent:= MyNewPage.Surface; end; end; function ShouldSkipPage(PageID: Integer): Boolean; begin if (PageID > wpSelectDir) and (PageID < wpInstalling) and (MyRadioBtn_1.Checked) then Result:= True; end; procedure InitializeWizard(); begin GetInstTypePage(); WizardForm.DiskSpaceLabel.Hide; end; procedure CurPageChanged(CurPageID: Integer); begin if not IsChecked then begin case CurPageID of wpSelectDir: begin WizardForm.Caption:= FmtMessage(ExpandConstant('{cm:Extracted}'), [ExpandConstant('{#SetupSetting("AppName")}')]); WizardForm.PageNameLabel.Caption:= ExpandConstant('{cm:ExtractedFolder}'); WizardForm.PageDescriptionLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder2}'), [ExpandConstant('{#SetupSetting("AppName")}')]); WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder3}'), [ExpandConstant('{#SetupSetting("AppName")}')]); if IsChecked then WizardForm.DirEdit.Text := ExpandConstant( '{pf}\{#SetupSetting("AppName")}' ) else WizardForm.DirEdit.Text := ExpandConstant( '{src}\{#SetupSetting("AppName")}' ); end; wpInstalling: begin WizardForm.PageNameLabel.Caption:= ExpandConstant('{cm:Installing}'); WizardForm.PageDescriptionLabel.Caption:= FmtMessage(ExpandConstant('{cm:InstallingLabel}'), [ExpandConstant('{#SetupSetting("AppName")}')]); end; wpFinished: begin WizardForm.FinishedHeadingLabel.Caption:= FmtMessage(ExpandConstant('{cm:FinishedHeadingLabel}'), [ExpandConstant('{#SetupSetting("AppName")}')]); WizardForm.FinishedLabel.Caption:= FmtMessage(ExpandConstant('{cm:FinishedLabelNoIcons}'), [ExpandConstant('{#SetupSetting("AppName")}')]); end; end; end; end; |
Отправлено: 07:57, 03-08-2015 | #843 |
Пользователь Сообщения: 76
|
Профиль | Отправить PM | Цитировать vadjliss, Пробуйте
http://rghost.ru/7VmP5Z6Yk |
Последний раз редактировалось TryRooM, 03-08-2015 в 14:46. Отправлено: 11:44, 03-08-2015 | #844 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать пожалуйста подскажите как реализовать на странице выбора папки - выбор дисков
имеется в виду чтобы выбор был ТОЛЬКО корень дисков доступных в системе |
Отправлено: 14:18, 05-08-2015 | #845 |
Ветеран Сообщения: 855
|
Профиль | Отправить PM | Цитировать Доброе время суток. Возможно ли задать кодировку создаваемого ini файла например на utf-8
|
------- Отправлено: 15:38, 05-08-2015 | #846 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата vadjliss:
если хотите рядом со скриптом, то: |
|
------- Отправлено: 18:23, 05-08-2015 | #847 |
Забанен Сообщения: 96
|
извиняюсь я не правильно выразился
при распаковки создаётся 2 исполняемых файла один надо убрать как это можно сделать вот скрин #define MyAppName "My Program" #define MyAppVersion "1.2.8" #define MyAppPublisher "My Company, Inc." #define MyAppURL "http://www.example.com/" #define MyAppExeName "Amakrits.vsf" [Setup] AppId={{A5209214-FFB5-45F0-A529-5BA87A16C566} AppName={#MyAppName} AppVersion=1.2.8 AppVerName=1.2.8 AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputDir=C:\Users\Dilan\Desktop\Output OutputBaseFilename=setup Compression=lzma SolidCompression=yes UninstallFilesDir={app}\Новая папка\Новая папка [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Users\Dilan\Desktop\Output\Новая папка (2)\Новая папка\Новая папка\BlurayConverterUltimate.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Dilan\Desktop\Output\Новая папка (2)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs [Icons] Name: "{group}\My Program"; Filename: "{app}\Новая папка\Новая папка\BlurayConverterUltimate.exe" Name: "{commondesktop}\My Program"; Filename: "{app}\Новая папка\Новая папка\BlurayConverterUltimate.exe"; Tasks: desktopicon |
Отправлено: 18:45, 05-08-2015 | #848 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Здесь:
[Files] Source: C:\Users\Dilan\Desktop\Output\Новая папка (2)\Новая папка\Новая папка\BlurayConverterUltimate.exe; DestDir: {app}; Flags: ignoreversion Source: C:\Users\Dilan\Desktop\Output\Новая папка (2)\*; DestDir: """{app}" |
Отправлено: 20:21, 05-08-2015 | #849 |
Забанен Сообщения: 96
|
спасибо Nordek
а, я голову сломал |
Отправлено: 20:29, 05-08-2015 | #850 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|