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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

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

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

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


Ссылка на архив предыдущей темы (также можно скачать из вложения)

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 22:06, 23-08-2009

 

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

Ветеран


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

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


Цитата shao:
При деинсталляции необходимо указать возможность выбора каждого. »
А если просто сообщения - вы хотите удалить 1.dll?
Тогда в Function InitializeUninstall делаем проверку If FileExists then MsgBox..., в секции Files для этих файлов флаг uninsneveruninstall.

Вот что наковырял
Код: Выделить весь код
var 
UnChoice: array[0..4] of TRadioButton
UnInstallPage: TWizardPage;

UnInstallPage:= CreateCustomPage(wpUserInfo,ExpandConstant('{cm:UninstallLabel}'),ExpandConstant('{cm:UninstallDescription}'));
	for n:= 0 to 4 do begin
UnChoice[n]:= TRadioButton.Create(UnInstallPage)
	UnChoice[n].Parent:= UnInstallPage.Surface;
	UnChoice[n].Caption:= ExpandConstant(' {cm:UnChoice'+ IntToStr(n) +'} ');
	UnChoice[n].SetBounds(WizardForm.PreparingLabel.Left + 16, WizardForm.PreparingLabel.Top + 25 + 25*(n+1), WizardForm.PreparingLabel.Width, UnChoice[n].Height); end;

if CurPageID = UnInstallPage.ID then begin
В шапке коллекция скриптов - InnoSetup_Upgrade. Я щаз два часа ковырял - тяму не хватило заставить работать.

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


Последний раз редактировалось R.i.m.s.k.y., 12-10-2010 в 11:31.

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

Отправлено: 10:01, 12-10-2010 | #2451



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

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


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


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

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


Здравствуйте господа. У меня проблема. После создания репака, и установки с него игры, я ее не могу удалить не с "установка и удаление программ", не с меню "Пуск".

Только физическое удаление папки игры. Скрипт создавался Inno Setup GameScript Generator 1.1.0.62 для Inno Setup Compiler 5-2-2.

Если создаю скрипт самим Inno Setup Compiler и правлю его istool, то все работает.

Пишет при попытке удаления что : Файл протокола для инстализации не распознан данной верией программы - деинстализатора.

Прошу помочь, и подсказать где проблема.

Вот скрипт:

Код: Выделить весь код
 
;      Скрипт создан с помощью
; IS GameScript Generator by South
;   специально для www.csmania.ru

[Setup]
SourceDir=.
OutputDir=D:\
AppName=Две сорваные башни.
AppVerName=Две сорваные башни.
AppVersion=Две сорваные башни.
AppPublisher=Necromant SOFT
AppCopyright=Necromant SOFT
AppPublisherURL=www.norcom.ru
AppSupportURL=www.norcom.ru
AppUpdatesURL=www.norcom.ru
DefaultDirName={pf}\Две сорваные башни.
DefaultGroupName=Две сорваные башни.
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp002.bmp
WizardSmallImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp013.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/ultra
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=314572800
SlicesPerDisk=1

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

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
Source: "C:\Fraps\Screenshots\towers 2010-10-11 04-00-08-61.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-18-45-61.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-24-14-22.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-25-34-98.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\towers 2010-10-11 03-59-56-43.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956405.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956406.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956407.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956409.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\091095d.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: C:\Users\necromantster\Desktop\ппкрпрку.reg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: "D:\Games\Две сорванные башни\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

[Icons]
Name: "{group}\2bachni"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Parameters: autorun;
Name: "{userdesktop}\2bachni"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Parameters: autorun;
Name: "{group}\launcher"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Parameters: launcher;
Name: "{userdesktop}\launcher"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Parameters: launcher;
Name: "{group}\{cm:UninstallProgram,Две сорваные башни.}"; Filename: "{uninstallexe}"

[Run]
Description: "{cm:LaunchProgram, 2bachni}"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Parameters: autorun; Flags: nowait postinstall skipifsilent unchecked
Description: "{cm:LaunchProgram, launcher}"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Parameters: launcher; Flags: nowait postinstall skipifsilent unchecked
Filename: {win}\regedit.exe; Parameters: /s {tmp}\ппкрпрку.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser

[UninstallDelete]
Type: filesandordirs; Name: "{app}"

[_code] 
const
  Indent=25;
  dURL=2;

var
  URLLabel,URLLabelShadow:TLabel;

function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload';
function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boolean; external 'ssInitialize@files:isgsg.dll stdcall delayload';
procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload';
procedure ssSetBkgImage(FileName:PChar); external 'ssSetBkgImage@files:isgsg.dll stdcall delayload';
procedure ssAddImage(FileName:PChar); external 'ssAddImage@files:isgsg.dll stdcall delayload';
procedure ssStartShow; external 'ssStartShow@files:isgsg.dll stdcall delayload';
procedure ssStopShow; external 'ssStopShow@files:isgsg.dll stdcall delayload';
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure URLLabelClick(Sender: TObject);
var
  ErrorCode:integer;
begin
  ShellExec('open','www.norcom.ru','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;

procedure URLLabelMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  URLLabel.Top:=URLLabel.Top+dURL;
  URLLabel.Left:=URLLabel.Left+dURL;
  URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline];
  URLLabel.Font.Color:=clBlue;
  URLLabelShadow.Visible:=False;
end;

procedure URLLabelMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  URLLabel.Top:=URLLabel.Top-dURL;
  URLLabel.Left:=URLLabel.Left-dURL;
  URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline];
  URLLabel.Font.Color:=clMaroon;
  URLLabelShadow.Visible:=True;
end;

procedure RunListClickCheck(Sender: TObject);
var
  i:integer;
begin
  if WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex] then begin
    for i:=0 to WizardForm.RunList.Items.Count-1 do
      WizardForm.RunList.Checked[i]:=False;
    WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex]:=True;
  end;
end;

function InitializeSetup:boolean;
begin
  ExtractTemporaryFile('ппкрпрку.reg');
  Result:=True;
end;

procedure InitializeWizard;
begin
  WizardForm.RunList.OnClickCheck:=@RunListClickCheck;
  URLLabelShadow:=TLabel.Create(WizardForm);
  with URLLabelShadow do begin
    Top:=ScaleY(331);
    Left:=ScaleX(25);
    Caption:='www.norcom.ru';
    AutoSize:=True;
    Parent:=WizardForm;
    Transparent:=True;
    Font.Color:=$969696;
    Font.Size:=9;
    Font.Style:=Font.Style+[fsBold];
  end;
  URLLabel:=TLabel.Create(WizardForm);
  with URLLabel do begin
    Top:=ScaleY(331)-dURL;
    Left:=ScaleX(25)-dURL;
    Caption:='www.norcom.ru';
    AutoSize:=True;
    Parent:=WizardForm;
    Cursor:=crHand;
    Transparent:=True;
    Font.Color:=clMaroon;
    Font.Size:=9;
    Font.Style:=Font.Style+[fsBold];
    BringToFront;
    OnClick:=@URLLabelClick;
    OnMouseDown:=@URLLabelMouseDown;
    OnMouseUp:=@URLLabelMouseUp;
  end;
  ExtractTemporaryFile('091095d.jpg');
  ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\091095d.jpg',1000,7000,3000,0,255,False,$FFFFFF,10);
  ssInitialize(GetWindowLong(MainForm.Handle,-8),10,False,1,$FF000000);
  ExtractTemporaryFile('towers 2010-10-11 04-00-08-61.bmp');
  ssSetBkgImage(ExpandConstant('{tmp}')+'\towers 2010-10-11 04-00-08-61.bmp');
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep=ssInstall then begin
    ExtractTemporaryFile('dve_sorvannye_bashni-1243956405.jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956405.jpg');
    ExtractTemporaryFile('dve_sorvannye_bashni-1243956406.jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956406.jpg');
    ExtractTemporaryFile('dve_sorvannye_bashni-1243956407.jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956407.jpg');
    ExtractTemporaryFile('dve_sorvannye_bashni-1243956409.jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956409.jpg');
    ExtractTemporaryFile('kmplayer 2010-10-11 21-24-14-22.bmp');
    ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-24-14-22.bmp');
    ExtractTemporaryFile('kmplayer 2010-10-11 21-18-45-61.bmp');
    ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-18-45-61.bmp');
    ExtractTemporaryFile('towers 2010-10-11 03-59-56-43.bmp');
    ssAddImage(ExpandConstant('{tmp}')+'\towers 2010-10-11 03-59-56-43.bmp');
    ExtractTemporaryFile('kmplayer 2010-10-11 21-25-34-98.bmp');
    ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-25-34-98.bmp');
    ssStartShow;
  end;
  if CurStep=ssPostInstall then ssStopShow;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID=wpInstalling then begin
    WizardForm.MainPanel.Visible:=False;
    WizardForm.Bevel1.Visible:=False;
    WizardForm.Width:=ScaleX(395);
    WizardForm.Height:=ScaleY(142);
    WizardForm.Left:=ScaleX(GetSystemMetrics(0)-WizardForm.Width-Indent);
    WizardForm.Top:=ScaleY(GetSystemMetrics(1)-WizardForm.Height-Indent);
    WizardForm.InnerNotebook.Left:=ScaleX(10);
    WizardForm.InnerNotebook.Top:=ScaleY(10);
    WizardForm.InnerNotebook.Width:=ScaleX(370);
    WizardForm.StatusLabel.Left:=ScaleX(0);
    WizardForm.StatusLabel.Top:=ScaleY(0);
    WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.FileNameLabel.Left:=ScaleX(0);
    WizardForm.FileNameLabel.Top:=ScaleY(20);
    WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.ProgressGauge.Top:=ScaleY(40);
    WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.CancelButton.Left:=ScaleX(154);
    WizardForm.CancelButton.Top:=ScaleY(80);
  end;
  if (CurPageID=wpFinished) or (CurPageID=wpInfoAfter) then begin
    WizardForm.RunList.Checked[0]:=True;
    if WizardForm.Width<>502 then begin
      WizardForm.Visible:=False;
      WizardForm.Width:=ScaleX(502);
      WizardForm.Height:=ScaleY(392);
      WizardForm.Left:=(GetSystemMetrics(0)-WizardForm.Width) div 2;
      WizardForm.Top:=(GetSystemMetrics(1)-WizardForm.Height) div 2;
      WizardForm.MainPanel.Visible:=True;
      WizardForm.Bevel1.Visible:=True;
      WizardForm.InnerNotebook.Left:=ScaleX(40);
      WizardForm.InnerNotebook.Top:=ScaleY(72);
      WizardForm.InnerNotebook.Width:=ScaleX(417);
      WizardForm.Visible:=True;
    end;
  end;
end;

procedure DeinitializeSetup;
begin
  ssDeInitialize;
end;

Последний раз редактировалось necromanster, 12-10-2010 в 13:12.


Отправлено: 11:48, 12-10-2010 | #2452


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

Ветеран


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

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


Цитата necromanster:
Здравствуйте господа. »
Господа все в Париже
Цитата necromanster:
Прошу помочь, и подсказать где проблема. »
У меня все поставилось (без секции Files) и деинсталлилось...
Только при установке последнее окно где-то внизу-справа оказалось.

в папке Source: "D:\Games\Две сорванные башни\*" случайно нету файлов unins*? файлы unins*.dat и unins.exe инно создает сам в процессе установки.

И код надо заключать в теги [_code] [/_code], а такой здоровый кусок - под кат
[_ht=Заголовок скрытого текста]скрытый текст, который будет отображаться при нажатии на заголовок[/_ht]
_ убрать из тегов.

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

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

Отправлено: 12:08, 12-10-2010 | #2453


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


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

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


Цитата:
в папке Source: "D:\Games\Две сорванные башни\*" случайно нету файлов unins*? файлы unins*.dat и unins.exe инно создает сам в процессе установки.
Есть. Что их удалить нужно перед запаковкой ?

И еслти не трудно, еще один вопрос. Как сделать так, что бы при установке игры, устанавливалось дополнительное ПО. (DirectX и тому подобное.)

Искал ответ на форуме, но внятного описания нет.

Отправлено: 13:05, 12-10-2010 | #2454


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

Ветеран


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

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


Цитата necromanster:
Что их удалить нужно перед запаковкой ? »
ну дык они замещают инношные unins*

Цитата necromanster:
Как сделать так, что бы при установке игры, устанавливалось дополнительное ПО »
DirectX
http://forum.oszone.net/post-1455980.html#post1455980
http://forum.oszone.net/post-1456143.html#post1456143
Легко находится по слову DirectX

А вообще надо смотреть что за ПО, некоторое надо еще проверять на версии чтобы старым не заменить новое.

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


Отправлено: 13:18, 12-10-2010 | #2455


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


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

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


Добрый день
Нужна помощь.сделал нсталятор в котором есть две группы ,как сделать чтобы на странице выбора установки не была сразу отмечена галочкой сама группа и её компоненты,при выборе группы не выбирались оба компонента,при выборе одного компонента группы снимался выбор со второго
Код: Выделить весь код
[Types] 
Name: "viborochnaya"; Description: "Выборочная установка"; Flags: iscustom 
 [Components]
Name: "Gruppa1"; Description: "Название"; Types: viborochnaya  
Name: "Gruppa1\Component1"; Description: "Название"; Types: viborochnaya 
Name: "Gruppa1\Component2"; Description: "Название"; Types: viborochnaya 
Name: "Gruppa2"; Description: "Название"; Types: viborochnaya 
Name: "Gruppa2\Component1"; Description: "Название"; Types: viborochnaya 
Name: "Gruppa2\Component2"; Description: "Название"; Types: viborochnaya  
[Files] 
Source: E:\Новая папка\Папка1\*; Components: Gruppa1\Component1; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs 
Source: E:\Новая папка\папка2\*; Components: Gruppa1\Component2; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs 
Source: E:\Новая папка\Папка3\*; Components: Gruppa2\Component1; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs 
Source: E:\Новая папка\папка4\*; Components: Gruppa2\Component2; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Подскажите что нужно дописать?Заранее благодарю.

Отправлено: 14:44, 12-10-2010 | #2456


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

Ветеран


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

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


Цитата tor62:
Добрый день »
Симметрично добрый!

Код: Выделить весь код
[Types] 
Name: "viborochnaya"; Description: "Выборочная установка"; Flags: iscustom 
Name: "full"; Description: "Полная установка"; Flags:

[Components]
Name: "Gruppa1"; Description: "Название"; Types: full; Flags: checkablealone
Name: "Gruppa1\Component1"; Description: "Название"; Types: viborochnaya; Flags: dontinheritcheck
Name: "Gruppa1\Component2"; Description: "Название"; Types: full; Flags: dontinheritcheck
Name: "Gruppa2"; Description: "Название"; Types: viborochnaya 
Name: "Gruppa2\Component1"; Description: "Название"; Types: viborochnaya; Flags: exclusive 
Name: "Gruppa2\Component2"; Description: "Название"; Types: viborochnaya; Flags: exclusive
Экспериментируем с флагами exclusive (выбрать один из многих), checkablealone (можно выбрать один без "дочек"), dontinheritcheck (не выбирать "дочку" при выборе "родителя", не дружит с exclusive)
Цитата tor62:
Подскажите что нужно дописать?Заранее благодарю. »
Если сообщение помогло - давим внизу "Полезное сообщение", не помогло - задаем наводящие вопросы.


shao,
забыл дописать, по первому варианту (вывод сообщений) если есть вопросы - в личку, напишу код, по второму (inno setup upgrade) я не подскажу, знаний не хватает. В данномвопросе вторым способом могут помочь камрады Serega и Habetdin.

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


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

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

Отправлено: 15:01, 12-10-2010 | #2457


Аватара для shao

Ветеран


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

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


Цитата R.i.m.s.k.y.:
А если просто сообщения - вы хотите удалить 1.dll? »
Разве что, если нет других вариантов.
Но , желательно все-таки с возможностью выбора из , например, списка/перечня удаляемых файлов.

Цитата R.i.m.s.k.y.:
Тогда в Function InitializeUninstall делаем проверку If FileExists then MsgBox »
Это уже из Паскаля... А я его не знаю....
Схожу-ка в личку

Цитата R.i.m.s.k.y.:
В данном вопросе вторым способом могут помочь камрады Serega и Habetdin »
Да , спасибо ! Будем ждать их реакции.....

Отправлено: 16:27, 12-10-2010 | #2458


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

Ветеран


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

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


Цитата shao:
Это уже из Паскаля... А я его не знаю »
Ну хотя бы общие черты кода инно

Код: Выделить весь код
Procedure www (filetodel : string);
var st : string;
begin
st := ExpandConstant('{sys}\' + filetodel;
if MsgBox('Удалить файл ' + filetodel +'?', mbError, MB_YESNO) = idYes then begin
if DeleteFile(st) = False then MsgBox('Не удалось удалить файл '+ filetodel, mbInformation, MB_OK);
end;
end;

Function InitializeUninstall: Boolean;
begin
if (FileExists(ExpandConstant('{sys}\1.dll'))) then www('1.dll');
...
if (FileExists(ExpandConstant('{sys}\5.dll'))) then www('5.dll');
end;
Могут быть орфографические ошибки.

А к старшим вопрос - как при деинсталляции создать окно выбора чего удалять? Коллекцию скриптов смотрел, курил - не понял.

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

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

Отправлено: 16:42, 12-10-2010 | #2459


Аватара для shao

Ветеран


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

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


Спасибо.
Насколько я понимаю - здесь :
Код: Выделить весь код
Function InitializeUninstall: Boolean;
begin
if (FileExists(ExpandConstant('{sys}\1.dll'))) then www('1.dll');
...
if (FileExists(ExpandConstant('{sys}\5.dll'))) then www('5.dll');
end;
необходимо указывать свои данные. Месторасположение и сами файлы ...

Отправлено: 17:03, 12-10-2010 | #2460



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход