|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3] |
|
Скрипты Inno Setup. Помощь и советы [часть 3]
|
Ветеран Сообщения: 1133 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 |
|
------- Отправлено: 00:28, 04-11-2010 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать insombia, так
|
Отправлено: 18:11, 22-09-2011 | #3191 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Qu@dr0
[Icons] насчет ввода ника учись пользоваться поисковиком вчера был вопрос и на него был ответ так что ищи |
Отправлено: 18:32, 22-09-2011 | #3192 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Какая то фигня с исоде не распаковывает архивы хоть они указаны если что скрипт только в ЛС
|
Последний раз редактировалось insombia, 22-09-2011 в 19:13. Отправлено: 19:00, 22-09-2011 | #3193 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать insombia,
Compile Error! Line: 140 Error: Column 35: Unknown identifier 'Russian' Чё вместо 'Russian' вписать? 0_о А вообще, мне не нужны ни клан тег, ни выбор языка, как их выкорчевать из скрипта? Нужно только окно с формой ввода, введённые данные прописываются в файл .ini, потом идёт последнее окно с кнопкой "Завершить" и пунктом из секции [Run] и всё. Help. |
Отправлено: 19:35, 22-09-2011 | #3194 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать Qu@dr0, Вот так все работает, проверил. Лучше, если ини-файл будет в папке, где ему положено быть. В выделенной строке нужно указать путь к нему. оставил никэдит и выбор яззыка. Там был косячек, исправил.
куски заключенные между { NicEdit } и { Lang } овечают за понятное, думаю, действие ![]() |
------- Отправлено: 19:52, 22-09-2011 | #3195 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать Лександер,
получается такое: ![]() Зная наших пользователей, 90% просто не заметят форму ввода ника. Как сделать, чтобы перед окном "Завершение мастера установки" появилось такое окно: ![]() Это намного удобнее, и пользователь точно не пропустит его. Желательно, чтобы кнопка "Далее" была недоступна, пока в форму не введен хотя бы один символ (или чтобы при нажатии "Далее" появлялось окно "Введите имя игрока"), и чтобы текст над и под формой ввода выравнивался по ширине. Это было бы идеально. А окно выбора языка мне не нужно, т.к. моя аудитория - только русскоговорящие пользователи. Буду благодарен за помощь. |
Отправлено: 21:54, 22-09-2011 | #3196 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать такой вопрос.
DisableAppendDir кануло в лету, чем его заменили ? как сделать так, чтобы в конец пути установки не добавлялось DefaultDirName ? |
Отправлено: 00:03, 23-09-2011 | #3197 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать murlakatamenka, AppendDefaultDirName=false
|
------- Отправлено: 00:44, 23-09-2011 | #3198 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Qu@dr0,
[code] const CP_ACP = 0; CP_UTF8 = 65001; var RevEmuPage: TInputQueryWizardPage; ConvertCheckBox: TCheckBox; function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD; lpMultiByteStr: PAnsiChar; cbMultiByte: Integer; lpWideCharStr: PAnsiChar; cchWideChar: Integer): Longint; external 'MultiByteToWideChar@kernel32.dll stdcall'; function WideCharToMultiByte(CodePage: UINT; dwFlags: DWORD; lpWideCharStr: PAnsiChar; cchWideChar: Integer; lpMultiByteStr: PAnsiChar; cbMultiByte, lpDefaultChar, lpUsedDefaultChar: Integer): Longint; external 'WideCharToMultiByte@kernel32.dll stdcall'; function StringToWideString(const aStr: String; codePage: Word): String; var len: Integer; begin len := MultiByteToWideChar(codePage, 0, aStr, -1, '', 0); if len > 0 then begin SetLength(Result, (len*2)-2); MultiByteToWideChar(codePage, 0, aStr, -1, Result, Length(Result)); end; end; function WideStringToString(const wStr: String; codePage: Word): String; var len: Integer; begin len := WideCharToMultiByte(codePage, 0, wStr, -1, '', 0, 0, 0); if len > 0 then begin SetLength(Result, len-1); WideCharToMultiByte(codePage, 0, wStr, -1, Result, Length(Result), 0, 0); end; end; function SetNickname(Nickname: String; IsConvert: Boolean): String; begin Result := Nickname; if IsConvert then Result := WideStringToString(StringToWideString(Result, CP_ACP), CP_UTF8); end; procedure NicknameOnChange(Sender: TObject); begin WizardForm.NextButton.Enabled := RevEmuPage.Values[0] <> ''; end; // procedure InitializeWizard(); begin RevEmuPage := CreateInputQueryPage(wpInfoAfter, 'Настройка RevEmu', '', 'Пожалуйста, введите данные профиля и нажмите Далее.'); with RevEmuPage do begin Add('Ник:', False); Edits[0].OnChange := @NicknameOnChange; end; ConvertCheckBox := TCheckBox.Create(WizardForm); with ConvertCheckBox do begin Parent := RevEmuPage.Surface; SetBounds(RevEmuPage.Edits[0].Left, RevEmuPage.Edits[0].Top + ScaleY(40), ScaleX(200), ScaleY(17)); Caption := 'Сохранить в UTF-8'; end; end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = RevEmuPage.ID then WizardForm.NextButton.Enabled := RevEmuPage.Values[0] <> ''; if CurPageID = wpFinished then SetIniString('steamclient', 'PlayerName', SetNickname(RevEmuPage.Values[0], ConvertCheckBox.Checked), ExpandConstant('{app}\rev.ini')); end; |
Последний раз редактировалось El Sanchez, 23-09-2011 в 13:30. Отправлено: 08:33, 23-09-2011 | #3199 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать El Sanchez
Хоть программированием я никогда не занимался и уровень знаний в этой области нулевой, но ошибку (спасибо, что была она не очень сложной) в скрипте я нашёл и даже исправил))) Правда, интуиции хватило только на это, да ещё на изменение имеющихся текстов в окне... Пока получилось такое: ![]() Вопросы: 1) Как сделать, чтобы строка с галочкой (про сохранение в UTF-8) не была так далеко от формы ввода имени, а располагалась прямо под ней вплотную? 2) Как добавить под этой строкой про UTF-8 (не прямо под ней, а на 3 пробела ниже) информацию следующего содержания: "Вы в любое время сможете сменить никнейм, для этого войдите в папку игры, откройте Блокнотом файл rev.ini, найдите строчку PlayerName и после знака "=" впишите желаемый никнейм." И чтобы выравнивание этого текста было по ширине (так выглядит лучше)? Заранее благодарю за помощь! |
Отправлено: 13:08, 23-09-2011 | #3200 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [addon] Inno Setup | CrOsP | Наборы обновлений для Windows XP/2003/Windows 7 | 33 | 11-05-2011 16:03 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Inno Setup 5.3.6 | OSZone Software | Новости программного обеспечения | 0 | 15-11-2009 17:30 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|