Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 5]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Новый участник


Сообщения: 19
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
Можно ли как-то обойти окно выбора языка при старте установщика, задав "насильно" устанавливаемый язык? »
Цитата R.i.m.s.k.y.:
Можно как-то "обощить" инсталлер на множество нерусских языков? если система русская - инсталлер выбирал русский язык (что собственно в секции Setup и указано), но если ОС любая кроме русской (китайская, корейская, бразильская etc) - то принудительно выбирался английский язык? естественно без окна выбора языка »
Вариант первый:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.

[_Code]
type
LCID = LongInt;

function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall';

procedure InitializeWizard();
begin
with WizardForm.WelcomeLabel1 do begin
if GetSystemDefaultLCID = 1049 then WizardForm.WelcomeLabel1.Caption:= 'По умолчанию' else WizardForm.WelcomeLabel1.Caption:= 'On Default';
end;
end;
Вариант второй:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.

[Files]
Source: "compiler:Languages\Russian.isl"; DestDir: {tmp}; Flags: dontcopy;
Source: "compiler:Languages\English.isl"; DestDir: {tmp}; Flags: dontcopy

[_Code]
type
LCID = LongInt;

var
LangFile: String;
  
function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall';

function InitializeSetup:boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\Russian.isl')) then ExtractTemporaryFile('Russian.isl');
  if not FileExists(ExpandConstant('{tmp}\English.isl')) then ExtractTemporaryFile('English.isl');
  Result:=True;
end;

procedure InitializeWizard();
begin
with WizardForm.WelcomeLabel1 do begin
if GetSystemDefaultLCID = 1049 then begin
LangFile:= ExpandConstant('{tmp}\Russian.isl');
WizardForm.WelcomeLabel1.Caption:= GetIniString('Messages', 'WelcomeLabel1', '', LangFile)
end else begin
LangFile:= ExpandConstant('{tmp}\English.isl');
WizardForm.WelcomeLabel1.Caption:= GetIniString('Messages', 'WelcomeLabel1', '', LangFile);
end;
end;
end;
P.S. Во втором варианте нужно создать INI-Файл, так как лейблы с ISL-Файла отображаются коряво (это так, для примера).
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:03, 06-10-2012 | #1081



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Respin, так веселее, я думаю - зачем лишний раз обращаться к одному и томуже. если все надписи делать таким образом, то придется кучу времени потратить на оптимизацию, поэтому начинать нужно сразу.
читать дальше »
Код: Выделить весь код
var
LangFile: String;
  
function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall';
function InitializeSetup:boolean;
var
  lngF : String;
begin
  if GetSystemDefaultLCID = 1049 then
    lngF := 'Russian.isl';
   else
    lngF := 'English.isl';

  LangFile:= ExpandConstant('{tmp}\'+lngF);
  if not FileExists(LangFile) then ExtractTemporaryFile(lngF);
  Result:=True;
end;

procedure InitializeWizard();
begin
  with WizardForm do 
  begin
    WelcomeLabel1.Caption:= GetIniString('Messages', 'WelcomeLabel1', '', LangFile); // и так для каждого статика и лейбела инсталла
    WelcomeLabel2.Caption:= GetIniString('Messages', 'WelcomeLabel2', '', LangFile); // и так для каждого статика и лейбела инсталла
  end;
end;

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:26, 06-10-2012 | #1082


Новый участник


Сообщения: 19
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Gnom_aka_Lexander:
зачем лишний раз обращаться к одному и томуже. если все надписи делать таким образом, то придется кучу времени потратить на оптимизацию, поэтому начинать нужно сразу. »
Там уже у кого на сколько фантазии хватит. Вот только он будет читать c ISL-Файла: "Вас приветствует Мастер установки [name]"
"Программа установит [name/ver] на Ваш компьютер"...

Вообщем кто как хочет, пусть так и делает. Главное суть вопроса.

Последний раз редактировалось Respin, 06-10-2012 в 10:05.


Отправлено: 10:00, 06-10-2012 | #1083


Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Respin, да при чем тут фантазия? Запусти свой вариант с прописью для каждой надписи и просмотри на скорость его выполнения. в любом случае, единственный правильный вариант - тут. Любой другой способ ведет к потерям производительности и к совершенно ненужным телодвижениям - зачем писать километр кода, который будет отнимать процессорное время для того, что и так делается самим инсталлом, при указании ему пары параметров?

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 10:11, 06-10-2012 | #1084


Аватара для SatHan

Пользователь


Сообщения: 98
Благодарности: 14

Профиль | Отправить PM | Цитировать


SoftLine, не работает. что мне с этим делать?
подскажите что можно сделать чтобы подсказка плавала за курсором мыши в области компонента?

Отправлено: 17:15, 06-10-2012 | #1085


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


del

Последний раз редактировалось insombia, 06-10-2012 в 19:26.


Отправлено: 18:22, 06-10-2012 | #1086


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
Можно как-то "обощить" инсталлер на множество нерусских языков? если система русская - инсталлер выбирал русский язык (что собственно в секции Setup и указано), но если ОС любая кроме русской (китайская, корейская, бразильская etc) - то принудительно выбирался английский язык? естественно без окна выбора языка »
Если можно, я покритикую такой подход.
Есть множество украинцев устанавливающих украиноязычную винду, и я уверен, что подавляющее большинство из них русский понимают гораздо лучше, чем английский.

Отправлено: 20:39, 06-10-2012 | #1087


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Raf-9600, здровую критику воспринимаю здраво. Так бы я и рассудил и оставил выбор языка руками.
Но пришлось делать одном скрипте два инсталлера (разный набор компонентов): один рус/англ с выбором, и один рус/англ-автомат без выбора языка.
"Автомат"предназначался для non-exUUSR и вообще отправился в Южную Омеригу на бета-тест
Релизов это не касается

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 06-10-2012 в 21:59.


Отправлено: 21:41, 06-10-2012 | #1088


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


как сделать чтобы при выборе русского языка в реестр вписывался русский язык,а при английском английский?

Отправлено: 10:52, 07-10-2012 | #1089


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


insombia,
Код: Выделить весь код
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl; 
Name: english; MessagesFile: compiler:Languages\English.isl; 

[Registry]
Languages: russian; Root: HKCU; SubKey: твой ключ реестра для русского
Languages: english; Root: HKCU; SubKey: твой ключ реестра для собачьего

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:59, 07-10-2012 | #1090



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход