|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1271 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z |
|
Отправлено: 16:09, 04-04-2018 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
Видимо, объединяете не правильно... Пробуйте... Скрытый текст
[Setup] AppName=Test AppVersion=1.5 DefaultDirName={pf}\Test DisableWelcomePage=False OutputDir=. [Languages] Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl" Name: "EN"; MessagesFile: "compiler:Default.isl" [Files] Source: "Image\ReadmeRu.rtf"; DestDir: "{tmp}"; Flags: dontcopy Source: "Image\ReadmeEn.rtf"; DestDir: "{tmp}"; Flags: dontcopy //Source: "Language\Russian.lng"; DestDir: "{app}\Language"; Languages: RU; Flags: ignoreversion //Source: "Language\English.lng"; DestDir: "{app}\Language"; Languages: EN; Flags: ignoreversion [CustomMessages] EN.text=More detailed RU.text=Подробнее EN.text1=Close RU.text1=Закрыть EN.text2=About the program RU.text2=О программе EN.text3=Website RU.text3=Сайт EN.FreeSpace=Free space on disk: RU.FreeSpace=Доступно места на диске: EN.NeedSpace=Need space on disk: RU.NeedSpace=Требуется места на диске: [_code] var Flag: Boolean; WebButton,AboutButton: TNewButton; RichEditViewer: TRichEditViewer; Readme: AnsiString; r: integer; NeedSpaceLabel,FreeSpaceLabel: TLabel; FreeMB, TotalMB: Cardinal; SizeStr: String; SizeInt: Integer; SymbolNumber: Integer; function NumToStr(Float: Extended): String; Begin Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.'); while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do SetLength(Result, Length(Result)-1); end; function GetSize(): Integer; begin SizeStr:= WizardForm.DiskSpaceLabel.Caption; for SymbolNumber:= 97 to 122 do begin while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); ///Находим все символы нижнего регистра и удаляем while (Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr) > 0) do Delete(SizeStr, Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr),1); end; ///Находим все символы верхнего регистра и удаляем for SymbolNumber:= 192 to 255 do begin while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); end; ///Находим все символы нижнего регистра и удаляем while (Pos('.', SizeStr) > 0) do Delete(SizeStr, Pos('.', SizeStr), 1); ///Удаляем точки Delete(SizeStr, Pos(',', SizeStr), 5) ///Удаляем дробную часть Result:= StrToInt(Trim(SizeStr)); ///Переводим в число end; function CompareNum(FirstNum, SecondNum: Integer): Boolean; begin if FirstNum < SecondNum then Result:= False else Result:= True; end; function MbOrTb(Byte: Extended): String; begin if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else if Byte/1024 < 1024 then Result:= NumToStr(Byte/1024) + ' Гб' else Result:= NumToStr(Byte/(1024*1024)) + ' Тб' end; /// { Сколько требуется места на диске.procedure GetFreeSpaceCaption } procedure GetFreeSpaceCaption(Sender: TObject); var Path: String; begin Path := ExtractFileDrive(WizardForm.DirEdit.Text); GetSpaceOnDisk(Path, True, FreeMB, TotalMB); FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTb(FreeMB) NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt) if WizardForm.CurPageID = wpSelectDir then begin WizardForm.NextButton.Enabled:= CompareNum(FreeMB, SizeInt) end; end; procedure WebButtonOnClick(Sender: TObject); begin ShellExec('open', 'http://forum.oszone.net/post-2996351-870.html', '','', SW_SHOW, ewNoWait, r); end; procedure SettingHideShowOnClick(Sender: TObject); begin Wizardform.NextButton.Enabled := True; if Flag = False then begin RichEditViewer.Hide; Flag:= True; AboutButton.Caption := CustomMessage('text'); end else begin RichEditViewer.Show; Flag:= False; AboutButton.Caption:= CustomMessage('text1'); Wizardform.NextButton.Enabled:= True; end; end; procedure CurPageChanged(CurPageID: Integer); begin case CurPageID of wpWelcome: begin // Wizardform.NextButton.Enabled:= False; RichEditViewer.Hide; AboutButton.Caption:= CustomMessage('text'); Flag:= True; end; wpSelectDir: begin GetFreeSpaceCaption(nil) end; end; end; procedure InitializeWizard(); begin case ActiveLanguage of 'RU': begin ExtractTemporaryFile('ReadMeRu.rtf'); LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeRu.rtf', Readme); end; 'EN': begin ExtractTemporaryFile('ReadMeEn.rtf'); LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeEn.rtf', Readme); end; end; WebButton:= TNewButton.Create(WizardForm); with WebButton do begin Parent := WizardForm.WelcomePage; SetBounds(ScaleX(42),ScaleY(250),ScaleX(80),ScaleY(23)); Caption := CustomMessage('text3'); WebButton.OnClick := @WebButtonOnClick; end; AboutButton:= TNewButton.Create(WizardForm); with AboutButton do begin AboutButton.SetBounds(ScaleX(42),ScaleY(280),ScaleX(80),ScaleY(23)); AboutButton.Caption:= CustomMessage('text'); AboutButton.ShowHint:= True; AboutButton.Hint:= CustomMessage('text2'); AboutButton.OnClick:= @SettingHideShowOnClick; AboutButton.Parent:= WizardForm.WelcomePage; AboutButton.Cursor:= crHand; Flag:= True; end; RichEditViewer:= TRichEditViewer.Create(WizardForm); with RichEditViewer do begin Parent:= WizardForm.WelcomePage; SetBounds(ScaleX(164),ScaleY(0),ScaleX(333),ScaleY(314)); ScrollBars:= ssVertical; ReadOnly:= True; RTFText:= Readme; end; begin WizardForm.DiskSpaceLabel.Hide; #ifdef NeedSize SizeInt:= {#NeedSize} #else SizeInt:= GetSize; #endif NeedSpaceLabel := TLabel.Create(WizardForm); NeedSpaceLabel.SetBounds(ScaleX(0), ScaleY(198), ScaleX(209), ScaleY(13)) NeedSpaceLabel.Parent := WizardForm.SelectDirPage; NeedSpaceLabel.Transparent:=true; FreeSpaceLabel := TLabel.Create(WizardForm); FreeSpaceLabel.SetBounds(ScaleX(0), ScaleY(216), ScaleX(209), ScaleY(13)) FreeSpaceLabel.Parent := WizardForm.SelectDirPage; FreeSpaceLabel.Transparent:=true; WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption; WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0; end; end; |
|
------- Отправлено: 23:39, 18-11-2022 | #921 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, дык просто не знаю где подправлять). Уже всю голову сломал. Спасибо! Сейчас посмотрю.
|
Отправлено: 23:49, 18-11-2022 | #922 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
ну, дык надо ж не просто копипастом делать, а посмотреть, что и где жить должно... |
|
------- Отправлено: 00:01, 19-11-2022 | #923 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, Скрипт работает. Спасибо большое! Попробую остальное к нему добавить.
Подскажите пожалуйста, где была нестыковка. Что не так было? Хоть знать на будущее. |
Отправлено: 00:03, 19-11-2022 | #924 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
Да я бы с удовольствием подсказал... Но я ж не знаю, что Вы там прописали в сценарии... Давайте полный скрипт - вместе ошибки разберем... Может, и остальное вместе прикрутим... |
|
------- Отправлено: 00:15, 19-11-2022 | #925 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, Спасибо!
Я уже вижу некоторые изменения. До меня бы сейчас конечно не дошло. Мало знаний. Охота самому попробовать всё на место расставить. Если что, попрошу уж помочь тогда мне тупоголовому). Спасибо! |
Отправлено: 00:26, 19-11-2022 | #926 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
да, примеры и подсказки - это все замечательно, я сам тоже не профессор в этом, и часто помощи прошу более опытных коллег... По опыту: пока сам не попробуешь, и шишек не наколотишь - понимание не приходит... |
|
------- Отправлено: 00:37, 19-11-2022 | #927 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, Когда интересно, можно и шишек понабивать)
А Вы не подскажите, как эти две строчки в свойствах экзешника закомментировать. Или, если нельзя, совсем их убрать. |
Последний раз редактировалось DA-Bro, 19-11-2022 в 03:28. Отправлено: 00:40, 19-11-2022 | #928 |
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата DA-Bro:
нет, не подскажу, к сожалению... Это надо править в SetupLdr.e32, но, это не всегда заканчивается положительным результатом... Как вариант - просто не открывать этот файл в Restorator, и не париться на этот счет... |
|
------- Отправлено: 01:15, 19-11-2022 | #929 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Vanadiy777, ну так то их не видно. А в рестораторе смотришь: чего-то не хватает, не заполнено. Не порядок)))
Добавил я полностью весь скрипт. Всё отлично. Тьфу-тьфу-тьфу... Спасибо большое! Выручили! |
Отправлено: 01:18, 19-11-2022 | #930 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|