Inno Setup (создание инсталяционных пакетов). Часть 2

Статус
В этой теме нельзя размещать новые ответы.

aLLeXUs

Участник
[STRIKE]вроде как начал делать это переключение языков, но столкнулся с проблемой что при нажатии на кнопку текст не изменяется. Может быть нужно как-то перерисовывать(обновлять) страничку? кнопка рабочая, при нажатии присваевает переменной текста значение другого языка.[/STRIKE]

ошибку понял. Я значение изменял но никуда его не присваивал.
 
Последнее редактирование:

murlakatamenka

Новичок
alex0413, ну да, обновление формы надо как-то прописать
попробуй в код процедуры смены языка дописать
Код:
WizardForm.Repaint;
WizardForm.Refresh;
//возможно, что-то из этого лишнее - проверить на практике :)
 
Последнее редактирование:

LexBell

Борода
Супер модератор
ну да, обновление формы надо как-то прописать
Нет. Лишний репайен-рефреш, в итоге приведет к мерцанию. Текст меняется и так, вполне - я тоже писал такое как-то, от нечего делать. Проц во время переключения - процентов на 50 хавался, что грустно. Хотя, можно сделать минимум надписей, насколько возможно - я проверял - вполне информативный инсталл можно вообще с одним-двумя лейбелами сделать.
 

creator

Новичок
Здравствуйте!
Хочу спросить, как в Inno Setup сделать, так чтобы к отдельным компонентам были отключены стандартные функции?
1. Я хочу в инсталлятор засунуть две версии одной программы. Версии: обычная и portable.
У меня два компонента №1 и №2. В компоненте №2 Я указал папку portable-программы. Как мне сделать так, чтобы эта папка копировалась на жесткий диск пользователя как обычная папка с файлами?
Ситуация такая, что при распаковки portable создается деинсталлятор в ее папке, записи в реестре, группа в меню "Пуск" и строка в "Установка и удаление программ".
Portable никакого мусора в системе не оставляет.

2. Вот еще пример приведу. Я решил перепаковать игру. А в установщике сделать установку дополнительного DLC (это один такой файлик. лежать должен в папке сохранений)
Так вот, Я думаю нужно будет сделать в установщике отдельный компонент для DLC, путь которого будет вести в папку сохранений. И теперь представьте, нужно скопировать один файл в определенное место, а вместо этого будет создана целая программа (записи в реестре, деинсталлятор).

Вообщем, вопрос такой, как заставить установщика просто копировать файл(ы) без всякого мусора.
 

TERRAN

Новичок
Проверенный
creator

[Files]
Source: dlc.ini; DestDir: {userdocs}\Games\Save; Components: dlc; Flags: ignoreversion;

[Components]
Name: dlc; Description: Установить dlc;

или

[Files]
Source: dlc.ini; DestDir: {userdocs}\Games\Save; Tasks:: dlc; Flags: ignoreversion;

[Tasks]
Name: dlc; Description: Установить dlc;

надеюсь понятно)
 
Последнее редактирование:

creator

Новичок
TERRAN, собственно, мне нужно чтобы хвосты не создавались. посмотрите мой скрипт
 

Вложения

  • 1.5 KB Просмотры: 11

creator

Новичок
TERRAN, нет, нет. в данном скрипте мне надо, чтобы у компонента "port" (он содержит portable-программу) не создавался деинсталлятор и все прочее.
 

Devils Night

Ветеран
TERRAN, нет, нет. в данном скрипте мне надо, чтобы у компонента "port" (он содержит portable-программу)
Цитирую отсюда
Код:
#define MyAppName "WinDjView"
#define MyAppVersion "1.0.3"
#define MyAppExeName "WinDjView.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
Uninstallable=not IsComponentSelected('portable')

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Files]
Source: C:\Program Files\WinDjView\*; DestDir: {app}; Flags: ignoreversion createallsubdirs recursesubdirs; Components: default
Source: WinDjViewPortable\*; DestDir: {app}\portable; Flags: ignoreversion createallsubdirs recursesubdirs; Components: portable

[Components]
Name: default; Description: Обычная установка; Flags: exclusive
Name: portable; Description: Портативная установка; Flags: exclusive

[Run]
Filename: {app}\{#MyAppExeName}; Flags: nowait postinstall skipifsilent; Components: default
Filename: {app}\portable\{#MyAppExeName}; Flags: nowait postinstall skipifsilent; Components: portable
 

Winst@n

Участник
Проверенный
Помогите сделать проверку, включен ли аеро стиль в Win или нет.
Если включен классический стиль то можно проверить через
Код:
if IsThemeActive then Result:=true else MsgBox('Включите aero стиль Windows, и запустите мастер установки снова.', mbInformation, MB_OK)
И вырубить работу формы
Но вот никак не могу сделать проверку через DwmIsCompositionEnabled.
 
Последнее редактирование:

David.D.Rocco

Участник
Проверенный
Winst@n,
Код:
function DwmIsCompositionEnabled(var pfEnabled: BOOL): Longint; external 'DwmIsCompositionEnabled@dwmapi.dll stdcall delayload';

function isWin6: boolean;var ver: TWindowsVersion;
begin
  GetWindowsVersionEx(ver);
  if (ver.Major >= 6) then result:=true
    else result:=false;
end;

function CompositionEnabled: boolean;var r: bool;
begin
  if isWin6 then
    if DwmIsCompositionEnabled(r) = 0 then
      result:=r else result:=false;
end;

function InitializeSetup(): Boolean;
begin
  if CompositionEnabled then result:= true
    else begin
       MsgBox('aero off', mbInformation, MB_OK);
       result:=false;
    end;
end;
 

ProZorg

Новичок
Здравствуйте, хочу вывести описание игры на страницу инсталлятора, поверх изображения, можно ли это осуществить из doc файла? а то через CustomMessages делать неудобно. Если можно, то поделитесь пожалуйста кодом. Спасибо :)
 
Последнее редактирование:

Winst@n

Участник
Проверенный
David.D.Rocco,
Большое спасибо.
У кого Xp напомните сколько стилей, классический и обычный вроде или еще какой то есть?
 

prey2009

Мимокрокодил
Проверенный
LiTtleDeViL, вот пример, только с txt файлом:
Код:
var
  S: TStringList;
begin
  S := TStringList.Create;
  try
    S.LoadFromFile('c:\1.txt');
    WizardForm.WelcomeLabel1.Caption := S.Text;
  finally
    S.Free;
  end;
end;
 

ProZorg

Новичок
prey2009, спасибо, щрифт будет делаться стандартным, а что сделать чтоб можно было менять шрифт, цвет и тд?
 

prey2009

Мимокрокодил
Проверенный
LiTtleDeViL, свойство Font:
Код:
WizardForm.WelcomeLabel1.Font.Color := clWhite;
WizardForm.WelcomeLabel1.Font.Name := 'Arial';
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху