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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

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


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

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


Цитата nik1967:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'), 'rus', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break; »
надо немер компонента ставить вместо первого 0

Отправлено: 17:39, 29-01-2012 | #701



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

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


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


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

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


подскажите пожалуйста как изменить вид страницы компонентов чтобы я мог сам сделать шрифт написаного там и расположение

Отправлено: 18:14, 29-01-2012 | #702


Аватара для Johny777

Ветеран


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

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


N00bak,
вот код меняющий весь шрифт на той или иной странице
читать дальше »

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInfoBefore then WizardForm.Font.Name:= 'Verdana'; /// страница пролога
if CurPageID = wpLicense then WizardForm.Font.Name:= 'Verdana'; /// страница лицензии
end;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,

id страниц
читать дальше »

CurPageChanged: CurPageID = wpWelcome Приветствие
CurPageChanged: CurPageID = wpLicense Лицензионное соглашение
CurPageChanged: CurPageID = wpPassword Пароль
CurPageChanged: CurPageID = wpInfoBefore Информация перед установкой
CurPageChanged: CurPageID = wpUserInfo Информация о пользователе
CurPageChanged: CurPageID = wpSelectDir Выбор папки для установки
CurPageChanged: CurPageID = wpSelectComponents Выбор компонентов (типов)
CurPageChanged: CurPageID = wpSelectProgramGroup Выбор группы меню "Пуск"
CurPageChanged: CurPageID = wpSelectTasks Выбор дополнительных задач
CurPageChanged: CurPageID = wpReady Готовность к установке (Сводная информация)
CurPageChanged: CurPageID = wpPreparing Отображение процесса подготовки к установке
CurPageChanged: CurPageID = wpInstalling Отображение процесса установки

для изменения шрифта определённых лейблов, их расположения и размера на странице, ровно как и размера самой страницы рекомендую воспользоваться расширенной версией Inno от Restools (легко и удобно через GUI во вкладке "Редактор форм"), скачать который можно здесь http://forum.oszone.net/showthread.p...99#post1201499 или здесь http://innoultra.ru/

если нужно сделать одну из страниц уникальной (или все разные ), то это можно сделать по примеру кода "Прогрессбар в маленьком окне В левом нижнем углу"
http://forum.ru-board.com/topic.cgi?...&limit=1&m=1#1
также тебе пригодятся "компоненты основных страниц" http://forum.oszone.net/post-1096943-634.html из шапки темы


El Sanchez,
спасибо за автозапуск версии 2
работает отлично и всплывающее меню даже лучше и удобнее четырёх отдельных кнопок

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,

подскажите пожалуйста как объединить два кода!
знаний паскаля нет, а логики дальше не хватает
для компонентов у меня есть панель с описанием (так называемый "CompDescText")
вот оригинал и он же у меня в скрипте (только с константами описаний)
http://rghost.ru/36219751

я его изменил для страницы задач и он тоже работает
http://rghost.ru/36219742

вернее работал, пока я не начал их соединять

в моём скрипте уже есть описание компонетов
теперь хотел добавить описания и задач на станице задач
сделал так (чёрным те места, которые я поменял и вставил)

читать дальше »

[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.

[_Code]

function enabledesc(ComponentsListHandle: HWND; TasksListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

var
Info, Info2: TNewStaticText;
InfoCaption, InfoCaption2: TNewStaticText;
InfoPanel, InfoPanel2: TPanel;

procedure InitializeWizard;

begin
InfoPanel2 := TPanel.Create(WizardForm);
InfoPanel2.Parent := WizardForm.SelectTasksPage;
InfoPanel2.Caption := '';
InfoPanel2.Top := WizardForm.TasksList.Top;
InfoPanel2.Left := ScaleX(216);
InfoPanel2.Width := ScaleX(200);
InfoPanel2.Height := WizardForm.TasksList.Height;
InfoPanel2.BevelInner := bvRaised;
InfoPanel2.BevelOuter := bvLowered;
InfoCaption2 := TNewStaticText.Create(WizardForm);
InfoCaption2.Parent := WizardForm.SelectTasksPage;
InfoCaption2.Caption := 'Информация:';
InfoCaption2.Left := ScaleX(224);
InfoCaption2.Top := InfoPanel.Top - ScaleY(5);
InfoCaption2.Font.Color := clActiveCaption;
Info2 := TNewStaticText.Create(WizardForm);
Info2.Parent := InfoPanel;
Info2.AutoSize := False;
Info2.Left := ScaleX(6);
Info2.Width := ScaleX(188);
Info2.Top := ScaleY(12);
Info2.Height := WizardForm.TasksList.Height - ScaleY(18);
Info2.Caption := 'Наведите на компонент, чтобы получить дополнительную информацию';
Info2.WordWrap := true;


InfoPanel := TPanel.Create(WizardForm);
InfoPanel.Parent := WizardForm.SelectComponentsPage;
InfoPanel.Caption := '';
InfoPanel.Top := ScaleY(477);
InfoPanel.Left := ScaleX(0);
InfoPanel.Width := ScaleX(382);
InfoPanel.Height := ScaleY(72);
InfoPanel.BevelInner := bvRaised;
InfoPanel.BevelOuter := bvLowered;
InfoCaption := TNewStaticText.Create(WizardForm);
InfoCaption.Parent := WizardForm.SelectComponentsPage;
InfoCaption.Caption := ExpandConstant('{cm:ComponentsInfoPanel1}');
InfoCaption.Left := ScaleX(7);
InfoCaption.Top := InfoPanel.Top - ScaleY(6);
InfoCaption.Font.Color := clWhite;

Info := TNewStaticText.Create(WizardForm);
Info.Parent := InfoPanel;
Info.AutoSize := False;
Info.Left := ScaleX(10);
Info.Width := ScaleX(370);
Info.Top := ScaleY(10);
Info.Height := ScaleY(60);
Info.Caption := ExpandConstant('{cm:ComponentsInfoPanel2}');
Info.WordWrap := true;

enabledesc(WizardForm.ComponentsList.Handle,Info.Handle,
ExpandConstant('{cm:ComponentsDescription1};')+ /// оисания компонетов
ExpandConstant('{cm:ComponentsDescription2};')+
ExpandConstant('{cm:ComponentsDescription3};')+
ExpandConstant('{cm:ComponentsDescription4};')+
ExpandConstant('{cm:ComponentsDescription5};')+
ExpandConstant('{cm:ComponentsDescription6};')+
ExpandConstant('{cm:ComponentsDescription7};')+
ExpandConstant('{cm:ComponentsDescription8};')+
ExpandConstant('{cm:ComponentsDescription9};')+
ExpandConstant('{cm:ComponentsDescription10};')+
ExpandConstant('{cm:ComponentsDescription11};')+
ExpandConstant('{cm:ComponentsDescription12};')+
ExpandConstant('{cm:ComponentsDescription13};')+
ExpandConstant('{cm:ComponentsDescription14};')+
ExpandConstant('{cm:ComponentsDescription15};')+
ExpandConstant('{cm:ComponentsDescription16};')+
ExpandConstant('{cm:ComponentsDescription17};')+
ExpandConstant('{cm:ComponentsDescription18};')+
ExpandConstant('{cm:ComponentsDescription19};')+
ExpandConstant('{cm:ComponentsDescription20};')+
ExpandConstant('{cm:ComponentsDescription21};')+
ExpandConstant('{cm:ComponentsDescription22};')
enabledesc(WizardForm.TasksList.Handle,Info.Handle, ------------------- Здесь ошибка Comma `,` Expected (не знаю как объединить эту строчку и описания задач с их аналогами для компонентов)
'Короткое описание игры;'+ ///// описания задач начало
'Дополнительная документация, на разных языках;'+
'Техт игры;'+
'Официальный английский текст от EA Games;'+
'Официальный немецкий текст от неизвестного производителя;'+
'Пиратский китайский текст;'+
'Официальный русский текст от софтклаб;'+
'Озвучка игры;'+
'Официальная английская озвучка от EA Games;'+
'Официальная немецкая озвучка от неизвестного производителя;'+
'Пиратская китайская озвучка;'+
'Официальная русская озвучка от софтклаб;'+
'Русская озвучка от 7Wolf;'+
'Русская озвучка от фаргуса;'

);
end.



Script Joiner не помогает

Последний раз редактировалось Johny777, 30-01-2012 в 03:35.

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

Отправлено: 02:14, 30-01-2012 | #703


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата Johny777:
Script Joiner не помогает »
Script Joiner помогает! В папке с установленным Script Joiner есть папка с примерами того, КАК нужно подготовить скрипт, и тогда все просто великолепно объединяется и работает. Тут я постарался максимально понятно описать, как с помощью этой утилиты объединять скрипты. Специально для тех, кто считает, что справки пишут для лохов, а реальным пацанам она ни к чему.

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

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

Отправлено: 10:56, 30-01-2012 | #704


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


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

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


доброго времени суток, у меня проблема, как сделать так как на картинке??? (картинку оформлял я http://i29.fastpic.ru/big/2012/0130/...3500a70a12.jpg )

смысл заключается в том что у пользователя перед компонентами вылетает выбор режима установки для Standart пользователя и для Premium пользователя
Для обоих вариантов вылетает список компонентов которые он не может выбрать (но может увидеть что они устанавливаются) и те которые может выбрать
Они идентичны только в разделе Premium устанавливается еще одна строчка

вот ниже код который я использовал для написания такого скрипта но не знаю как дальше писать
читать дальше »

[code]
[Setup]
AppName=Quake Live
AppVerName="Quake Live"
AppPublisher=Mio Dark Project
CreateAppDir=no
DefaultGroupName=Mio Dark Project\Quake Live
AllowNoIcons=yes
OutputDir=Output
OutputBaseFilename=Quake Live
SetupIconFile=setup.ico
Compression=lzma/ultra
SolidCompression=yes
ShowTasksTreeLines=yes
DisableProgramGroupPage=yes
WizardImageFile=Big.bmp
WizardSmallImageFile=Small.bmp
UninstallDisplayIcon={app}\Uninstall\uninstall.ico
UninstallFilesDir={app}\Uninstall
WizardImageStretch=no
AlwaysShowComponentsList=no

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

[Types]
Name: "full"; Description: "Все компоненты";
Name: "custom"; Description: "Выбрать компоненты"; Flags: iscustom

[Components]
Name: "main"; Description: "Cтандартные файлы Quake Live"; Types: full custom; Flags: fixed
Name: "main2"; Description: "Премиум файлы Quake Live"; Types: full custom; Flags: fixed
Name: "plug"; Description: "Плагин Quake Live"; Types: full custom
Name: "browser"; Description: "Портативный Firefox под Quake Live"; Types: full custom
Name: "manual"; Description: "Руководство и Награды"; Types: full custom
Name: "anti"; Description: "Античит PunkBuster"; Types: full custom

[CustomMessages]
HeaderLabelPage=Выберите тип вашего аккаунта
MyRadioCaption_1=Standart
MyRadioCaption_2=Premium / Pro
PageTextHeader=На этой странице Вы можете выбрать тип вашего аккаунта, который вы используете в игре.
MyText_1=Будут установлены файлы которые доступны для игроков без подписки.
MyText_2=Будут установлены файлы которые доступны для игроков с Premium/Pro подпиской.


[Tasks]
Name: "desktopicon"; Description: "Создать ярлык на Рабочем Столе"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
;source: "uninstall.ico"; Components: main; DestDir: "{code:DetectWindows}\uninstall"; Flags: ignoreversion
;Source: "usercur\*"; Components: main; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
;Source: "usercur2\*"; Components: manual; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
;Source: "programfiles\*"; Components: browser; DestDir: "{pf}\"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "pk31\*"; Components: main; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension nocompression
;Source: "pbsvc.exe" ;Components: anti;DestDir: "{tmp}"; Flags: ignoreversion
;Source: "QuakeLiveNP_433.msi" ;Components: plug;DestDir: "{tmp}"; Flags: ignoreversion

Код: Выделить весь код
var
  MyNewPage: TWizardPage;
  Rect: TRect;
  HIcon: LongInt;
  AIconFileName: String;
  MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton;

procedure GetInstTypePage();
begin
  MyNewPage := CreateCustomPage(wpWelcome,
    ExpandConstant('{cm:HeaderLabelPage}'), '');



  with TNewStaticText.Create(WizardForm) do
  begin
    Width := WizardForm.InnerNotebook.Width;
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:PageTextHeader}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_1 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_1 do
  begin
    Top := ScaleY(50);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_1}');
    Checked := True;
    Parent := MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Left := ScaleX(16);
    Top := ScaleY(68);
    Width := WizardForm.InnerNotebook.Width - ScaleX(60);
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:MyText_1}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_2 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_2 do
  begin
    Top := ScaleY(120);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_2}');
    Parent := MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Left := ScaleX(16);
    Top := ScaleY(138);
    Width := WizardForm.InnerNotebook.Width - ScaleX(60);
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:MyText_2}');
    Parent := MyNewPage.Surface;
  end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID <= wpSelectDir) and (PageID = wpReady) and (MyRadioBtn_2.Checked) then
     Result := True;
end;

procedure InitializeWizard();
begin
  GetInstTypePage();
end;
function DetectWindows(s: string): string;
var
  SubKeyName, ResultStr: string;
begin
  SubKeyName:= 'Software\Microsoft\Windows NT\CurrentVersion';
  RegQueryStringValue(HKLM, SubKeyName, 'ProductName', ResultStr);
  if Pos('XP', ResultStr) > 0 then
    Result:= ExpandConstant('{%APPDATA}\id Software')
  else
  if Pos('Vista', ResultStr) > 0 then
    // не знаю, будет ли это C:\Users\Ваше_имя_пользователя\AppData\LocalLow\id Software
    // проверить не где
    Result:= ExpandConstant('{%APPDATA}\LocalLow\id Software')
  else Result:= '{%APPDATA}\LocalLow\id Software'; // сюда нужно вписать путь по дефолту, т.е. если не XP или Vista
end;

Отправлено: 13:13, 30-01-2012 | #705


Аватара для Johny777

Ветеран


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

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


Лександер,
соединил
сделал как в инструкции
в итоге получил дубликаты DeinitializeSetup1() и InitializeWizard1()
и опять ту же ошибку Duplicate Idenifier выдаёт, когда доходи до строк function
читать дальше »

// --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, (c) Bulat Ziganshin <Bulat.Ziganshin@gmail.com>. More info at http://issjoiner.codeplex.com/

// --- Source: 1.iss ------------------------------------------------------------

function enabledesc(ComponentsListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

var
Info: TNewStaticText;
InfoCaption: TNewStaticText;
InfoPanel: TPanel;

procedure DeinitializeSetup1();
begin
disabledesc();
end;

procedure InitializeWizard1();
begin


InfoPanel := TPanel.Create(WizardForm);
InfoPanel.Parent := WizardForm.SelectComponentsPage;
InfoPanel.Caption := '';
InfoPanel.Top := WizardForm.ComponentsList.Top;
InfoPanel.Left := ScaleX(216);
InfoPanel.Width := ScaleX(200);
InfoPanel.Height := WizardForm.ComponentsList.Height;
InfoPanel.BevelInner := bvRaised;
InfoPanel.BevelOuter := bvLowered;
InfoCaption := TNewStaticText.Create(WizardForm);
InfoCaption.Parent := WizardForm.SelectComponentsPage;
InfoCaption.Caption := 'Èíôîðìàöèÿ:';
InfoCaption.Left := ScaleX(224);
InfoCaption.Top := InfoPanel.Top - ScaleY(5);
InfoCaption.Font.Color := clActiveCaption;
Info := TNewStaticText.Create(WizardForm);
Info.Parent := InfoPanel;
Info.AutoSize := False;
Info.Left := ScaleX(6);
Info.Width := ScaleX(188);
Info.Top := ScaleY(12);
Info.Height := WizardForm.ComponentsList.Height - ScaleY(18);
Info.Caption := 'Íàâåäèòå íà êîìïîíåíò, ÷òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ';
Info.WordWrap := true;
enabledesc(WizardForm.ComponentsList.Handle,Info.Handle,
'Êîðîòêîå îïèñàíèå èãðû;'+
'Äîïîëíèòåëüíàÿ äîêóìåíòàöèÿ, íà ðàçíûõ ÿçûêàõ;'+
'Òåõò èãðû;'+
'Îôèöèàëüíûé àíãëèéñêèé òåêñò îò EA Games;'+
'Îôèöèàëüíûé íåìåöêèé òåêñò îò íåèçâåñòíîãî ïðîèçâîäèòåëÿ;'+
'Ïèðàòñêèé êèòàéñêèé òåêñò;'+
'Îôèöèàëüíûé ðóññêèé òåêñò îò ñîôòêëàá;'+
'Îçâó÷êà èãðû;'+
'Îôèöèàëüíàÿ àíãëèéñêàÿ îçâó÷êà îò EA Games;'+
'Îôèöèàëüíàÿ íåìåöêàÿ îçâó÷êà îò íåèçâåñòíîãî ïðîèçâîäèòåëÿ;'+
'Ïèðàòñêàÿ êèòàéñêàÿ îçâó÷êà;'+
'Îôèöèàëüíàÿ ðóññêàÿ îçâó÷êà îò ñîôòêëàá;'+
'Ðóññêàÿ îçâó÷êà îò 7Wolf;'+
'Ðóññêàÿ îçâó÷êà îò ôàðãóñà;'
);
end;

// --- Source: 2.iss ------------------------------------------------------------

function enabledesc(TasksListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

var
Info: TNewStaticText;
InfoCaption: TNewStaticText;
InfoPanel: TPanel;

procedure DeinitializeSetup2();
begin
disabledesc();
end;

procedure InitializeWizard2();
begin


InfoPanel := TPanel.Create(WizardForm);
InfoPanel.Parent := WizardForm.SelectTasksPage;
InfoPanel.Caption := '';
InfoPanel.Top := WizardForm.TasksList.Top;
InfoPanel.Left := ScaleX(216);
InfoPanel.Width := ScaleX(200);
InfoPanel.Height := WizardForm.TasksList.Height;
InfoPanel.BevelInner := bvRaised;
InfoPanel.BevelOuter := bvLowered;
InfoCaption := TNewStaticText.Create(WizardForm);
InfoCaption.Parent := WizardForm.SelectTasksPage;
InfoCaption.Caption := 'Èíôîðìàöèÿ:';
InfoCaption.Left := ScaleX(224);
InfoCaption.Top := InfoPanel.Top - ScaleY(5);
InfoCaption.Font.Color := clActiveCaption;
Info := TNewStaticText.Create(WizardForm);
Info.Parent := InfoPanel;
Info.AutoSize := False;
Info.Left := ScaleX(6);
Info.Width := ScaleX(188);
Info.Top := ScaleY(12);
Info.Height := WizardForm.TasksList.Height - ScaleY(18);
Info.Caption := 'Íàâåäèòå íà êîìïîíåíò, ÷òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ';
Info.WordWrap := true;
enabledesc(WizardForm.TasksList.Handle,Info.Handle,
'1;'+
'12;'+
'2222;'+
'5555;'+
'10;'+

'Ð0;'
);
end;

// --- Dispatching code ------------------------------------------------------------

procedure DeinitializeSetup();
begin
DeinitializeSetup1();
DeinitializeSetup2();
end;

procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;



Script Joiner новый

Отправлено: 14:04, 30-01-2012 | #706


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Johny777,
function enabledesc(TasksListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

У тебя эти две функции зачем-то объявлены дважды. естественно они не могут быть объединены, поскольку они вызываемые извне. а жойнеру - ему по барабану на то, что ты элементарных вещей понять не хочешь.

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

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

Отправлено: 14:37, 30-01-2012 | #707


Аватара для Johny777

Ветеран


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

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


Лександер,
да это так
сейчас без этих функций соединил, а потом дописал в Joined
инструкцию по Джоинеру несколько раз перечитал прежде чем соединять. Не получается
ну если у Вас соединилось, то дайте пожалуйста результат, а то я в тупике
говорю ж
паскаль не знаю
а про внешние функции в инструкции не слова

Последний раз редактировалось Johny777, 30-01-2012 в 15:11.


Отправлено: 14:57, 30-01-2012 | #708


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


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

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


Можно ли как-то "обновить" список файлов деинсталлятора?
У меня в процессе установки создаются файлы, о которых установщик "НЕ знает"...
Все эти файлы я записываю в секцию "[UninstallDelete]", а есть ли какой-нибудь другой способ?

Вариант:

читать дальше »
[UninstallDelete]
Type: filesandordirs; Name: "{app}


НЕ подходит, т.к. в процессе использования приложения в папке установки, создаются файлы конфигурации, профили, настройки, которые если пользователь не хочет удалять, ДОЛЖНЫ ОСТАТЬСЯ!
А данная команда удалит всю папку установки...

И аналогичный вопрос, по поводу "этих файлов", - как их удалить если установка НЕ завершится или пользователь её прервёт?

Отправлено: 17:02, 30-01-2012 | #709


Аватара для Johny777

Ветеран


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

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


TROY Diamond,
идеальный для тебя вариант (сам использую)
скопируй куда нибудь в конец секции CODE
http://rghost.ru/36227252
если не были созданы файлы после установки в директории установки, то удалит всё
если были созданы, то после удаления основных файлов появится окно со списком созданных после работы приложения файлов и галками можешь удалять отдельные ветки или некоторые файлы
скрин-пример http://rghost.ru/36227488
не забудь испольвоать в секции удаления такую строку
[UninstallDelete]
Type: files; Name: {app}
это часть Inno Setup Upgrade от Виктора Дробова

Последний раз редактировалось Johny777, 30-01-2012 в 17:44.

Это сообщение посчитали полезным следующие участники:
Показать/скрыть список поблагодаривших

Отправлено: 17:31, 30-01-2012 | #710



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход