|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить 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 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Может ещё кто поможет как кнопки прикручивать.
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application OutputDir=. [code] var RePackButton: TNewButton; WebButton: TNewButton; r: integer; procedure RePackButtonOnClick(Sender: TObject); begin MsgBox('Это сообщение о программе!', mbInformation, mb_Ok); end; procedure WebButtonOnClick(Sender: TObject); begin ShellExec('', 'http://forum.oszone.net/post-2996351-870.html', '','', SW_SHOW, ewNoWait, r); end; procedure InitializeWizard(); begin WebButton := TNewButton.Create(WizardForm); with WebButton do begin Parent := WizardForm.WelcomePage; Left := ScaleX(42); Top := ScaleY(260); Width := ScaleX(80); Height := ScaleY(23); Caption := 'Сайт'; WebButton.OnClick := @WebButtonOnClick; end; RePackButton := TNewButton.Create(WizardForm); with RePackButton do begin Parent := WizardForm.WelcomePage; Left := ScaleX(42); Top := ScaleY(220); Width := ScaleX(80); Height := ScaleY(23); Caption := 'О RePack''s'; RePackButton.OnClick := @RePackButtonOnClick; end; end; |
------- Отправлено: 08:19, 13-11-2022 | #871 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать ZVSRus, Спасибо большое!
Я в кодах не силён. А на примерах и подсказках проще. Кнопка со ссылкой на сайт подошла. А вот кнопка "О программе" не совсем то что нужно. Нужно чтобы открывался текстовый файл readme.RTF вот в таком окне: Кнопка "О программе" с открытием файла readme.RTF
Подскажите пожалуйста такой вариант кнопки. |
Отправлено: 17:11, 13-11-2022 | #872 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Кнопка "О программе" с открытием файла readme.RTF
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application OutputDir=. [Files] Source: "ReadMeRu.rtf"; DestDir: "{tmp}"; Flags: ignoreversion [code] var Flag : Boolean; AboutButton : TNewButton; RichEditViewer : TRichEditViewer; ReadmeRu : AnsiString; procedure SettingHideShowOnClick(Sender: TObject); begin Wizardform.NextButton.Enabled := True; if Flag = False then begin RichEditViewer.Hide; Flag:= True; AboutButton.Caption := 'Подробнее'; end else begin RichEditViewer.Show; Flag:= False; AboutButton.Caption := 'Закрыть'; Wizardform.NextButton.Enabled := True; end; end; procedure CurPageChanged(CurPageID: Integer); begin case CurPageID of wpWelcome: begin Wizardform.NextButton.Enabled := False; RichEditViewer.Hide; AboutButton.Caption := 'Подробнее'; Flag:= True; AboutButton.Caption := 'Подробнее'; end; end; end; procedure InitializeWizard(); begin ExtractTemporaryFile('ReadMeRu.rtf'); LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeRu.rtf', ReadmeRu); AboutButton := TNewButton.Create(WizardForm); with AboutButton do begin AboutButton.Left := ScaleX(42); AboutButton.Top := ScaleY(280); AboutButton.Caption := 'Подробнее'; AboutButton.ShowHint := True AboutButton.Hint := 'О программе' 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; RTFText := ReadmeRu; end; end; |
------- Отправлено: 20:07, 13-11-2022 | #873 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать ZVSRus, Спасибо!
Цитата:
Наверно "Далее" всегда активной должна быть. Я в коде Wizardform.NextButton.Enabled := False; на True поменял, вроде нормально сейчас. Не знаю может ещё там что подправить надо. Подскажите пожалуйста, а как сделать чтобы в этой кнопке при установке с Русским языком отображалось из ReadmeRu.rtf, а при установке с Английским или по дефолту - из ReadmeEn.rtf. И также в названиях кнопок Русский и Английский. |
|
Последний раз редактировалось DA-Bro, 25-11-2022 в 01:47. Отправлено: 20:54, 13-11-2022 | #874 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать DA-Bro,
Цитата DA-Bro:
Пример
[Setup] AppName=My Program AppVerName=My Program v 1.5 DefaultDirName={pf}\My Program OutputDir=. [Languages] Name: "ENG"; MessagesFile: "compiler:Languages\English.isl" Name: "RUS"; MessagesFile: "compiler:Languages\Russian.isl" [Files] Source: ReadMeRu.rtf; Flags: dontcopy Source: ReadMeEn.rtf; Flags: dontcopy [CustomMessages] ENG.text=More detailed RUS.text=Подробнее ENG.text1=Close RUS.text1=Закрыть ENG.text2=About the program RUS.text2=О программе ENG.text3=Website RUS.text3=Сайт [code] var Flag : Boolean; WebButton : TNewButton; AboutButton : TNewButton; RichEditViewer : TRichEditViewer; ReadmeRu, ReadmeEn : AnsiString; r: integer; 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; end; end; procedure InitializeWizard(); begin ExtractTemporaryFile('ReadMeRu.rtf'); LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeRu.rtf', ReadmeRu); ExtractTemporaryFile('ReadMeEn.rtf'); LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeEn.rtf', ReadmeEn); 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; if ActiveLanguage='RUS' then RTFText:= ReadmeRu else if ActiveLanguage='ENG' then RTFText:= ReadmeEn; end; end; Извиняюсь за перевод. Перевод машинный. В кнопке ''Далее'' глюка нет, сделано так специально, активируется после нажатия на кнопку ''Подробнее''. Если это вам не нужно, за комментируй две строки в procedure SettingHideShowOnClick(Sender: TObject); Wizardform.NextButton.Enabled := True; и Wizardform.NextButton.Enabled := False; в procedure CurPageChanged(CurPageID: Integer); |
|
------- Последний раз редактировалось ZVSRus, 14-11-2022 в 16:25. Отправлено: 15:43, 14-11-2022 | #875 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать ZVSRus, Спасибо большое!
Подскажите пожалуйста как грамотней удалить папку с содержимым из "C:\ProgramData\Папка программы". Я посмотрел в справке и не увидел такой константы {C:\ProgramData}. Что-то вроде этого: [UninstallDelete] Type: filesandordirs; Name: "{C:\ProgramData}\Папка программы"; Как правильней удалить из этой папки. |
Последний раз редактировалось DA-Bro, 14-11-2022 в 23:45. Отправлено: 17:37, 14-11-2022 | #876 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать [UninstallDelete]
Type: filesandordirs; Name: "{commonappdata}\Папка программы"; Ну так в справке же есть. |
------- Отправлено: 18:18, 14-11-2022 | #877 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать ZVSRus, понятно. Спасибо!
Просто в справке написано: {userappdata} & {commonappdata} Путь к папке с данными приложения (Application Data). Я вижу что не похоже на "ProgramData" и прошел мимо. |
Отправлено: 19:32, 14-11-2022 | #878 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Inno Setup - константа для каталога 'ProgramData'?
Задать вопрос Задано 6 лет, 1 месяц назад Изменено 2 года, 5 месяцев назад Просмотрено 9 тысяч раз 11 Я хочу, чтобы моя программа установки скопировала некоторые файлы в ProgramDataкаталог Windows, я вижу, что большинство каталогов Windows имеют предопределенные константы, уже определенные в документации по установке Inno, однако я не вижу ни однойProgramData. Поэтому я планирую использовать что-то вроде: {sd}\ProgramData\MyCompany\MyApp Является ли это правильным / наилучшим способом развертывания в этом каталоге с помощью Inno Setup? Мне просто кажется странным, что для каталога нет константы ProgramData. Это {commonappdata} константа. Он назван так, потому что исторически (Windows XP) путь был C:\Documents and Settings\All Users\Application Data (теперь это символическая ссылка на C:\ProgramData). И по той же причине использование the {sd}\ProgramDataне является правильным способом. |
------- Отправлено: 19:41, 14-11-2022 | #879 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста!
А как сделать чтобы при русском или анлийском (или по дефолту) выборе установки программы копировались только те файлы которые нужны для того или иного языка. Например ReadmeRu.rtf копируется когда русский выбираешь, а ReadmeEn.rtf когда английский Или Russian.lng при выборе русского копируется, а остальные языки нет. И наоборот. Например вот эти файлы:
[Files]
Source: "Image\ReadmeRu.rtf"; DestDir: "{tmp}"; Flags: dontcopy Source: "Image\ReadmeEn.rtf"; DestDir: "{tmp}"; Flags: dontcopy Source: "{app}\Language\English.lng"; DestDir: "{app}\Language"; Flags: ignoreversion Source: "{app}\Language\Russian.lng"; DestDir: "{app}\Language"; Flags: ignoreversion [Languages] Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl" Name: "EN"; MessagesFile: "compiler:Languages\English.isl" Вроде какая-то зависимость или исключение одного от другого должно быть. Где-то видел раньше, никак не вспомню где рыть. Давно уже было. И пример похожий в справке никак не найду. |
Последний раз редактировалось DA-Bro, 16-11-2022 в 08:12. Отправлено: 21:19, 15-11-2022 | #880 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|