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

Компьютерный форум 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

 

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


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

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


Цитата shao:
Код:
[Registry]
Root: HKCU; SubKey: Software\MyProg; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\MyProg; Flags: uninsdeletevalue uninsdeletekeyifemptyЧто я не так делаю, подскажите пожалуйста. »
uninsdeletevalue - это удаление параметра типа:
Root: HKLM; SubKey: SOFTWARE\MyProg; ValueType: string; ValueName: Name; ValueData: "";
А в данном случае, (если нужно удалить раздел Root: HKCU; SubKey: Software\MyProg) - задаётся флаг uninsdeletekey
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:37, 25-10-2010 | #2521



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

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


Аватара для STRAYKER

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


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

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


Весь скрипт ?

Та я сам незнаю в чем проблемма
1.Должно предложить содать папку в меню " ПУСК " оно не предлагает
2.Должно предложить содать ярлык --- тоже не предлагает
так что делать

Весь скрипт ?

Та я сам незнаю в чем проблемма
1.Должно предложить содать папку в меню " ПУСК " оно не предлагает
2.Должно предложить содать ярлык --- тоже не предлагает
так что делать

Отправлено: 20:07, 25-10-2010 | #2522


Аватара для STRAYKER

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


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

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


У меня не создает ярліки и папку в пуск
хотя в скрипте прописано чтобі оно создало

Отправлено: 20:24, 25-10-2010 | #2523


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


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

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


Habetdin
есть скрипт
Прогрессбар в правом нижнем углу как у механиков
Код: Выделить весь код
[_Code]
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure InitializeWizard();
begin
 //Выносим кнопку "Отмена" на передний план
  WizardForm.CancelButton.BringToFront;
end;

 procedure CurPageChanged(CurPageID: Integer);
 begin
  if CurPageID=wpInstalling then
   begin
    WizardForm.BorderStyle:=bsDialog;
    WizardForm.MainPanel.Visible:=False;
    WizardForm.Width:=ScaleX(320);
    WizardForm.Height:=ScaleY(127);
    WizardForm.InnerNotebook.Left:=ScaleX(7);
    WizardForm.InnerNotebook.Top:=ScaleY(7);
    WizardForm.InnerNotebook.Width:=ScaleX(300);
    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(17);
    WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.ProgressGauge.Top:=ScaleY(37);
    WizardForm.ProgressGauge.Left:=ScaleX(0);
    WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.CancelButton.Left:=ScaleX(122);
    WizardForm.CancelButton.Top:=ScaleY(70);
    WizardForm.Left:=GetSystemMetrics(16)-ScaleX(330);
    WizardForm.Top:=GetSystemMetrics(17)-ScaleX(110);
   end;
if CurPageID=wpFinished
 then
  begin
  WizardForm.Width:=502;{Размер окна по горизонтали}
  WizardForm.Height:=392;{Размер окна по вертикали}
  WizardForm.Position:=poScreenCenter; {Возврат в исходное состояние}
 end
end;


как наложить текстуру на кнопку отмены в этом скрипте с помошью этого
наложение текстуру на кнопки
Код: Выделить весь код
[ code]
const
  ButtonWidth = 80;    //Указываем размер кнопок
  ButtonHeight = 23;

  bidBack = 0;
  bidNext = 1;
  bidCancel = 2;
  bidDirBrowse = 3;
  bidGroupBrowse = 4;

var
  ButtonPanel: array [0..4] of TPanel;
  ButtonImage: array [0..4] of TBitmapImage;
  ButtonLabel: array [0..4] of TLabel;

procedure ButtonLabelClick(Sender: TObject);
var
  Button: TButton;
begin
  ButtonImage[TLabel(Sender).Tag].Left:=0
  case TLabel(Sender).Tag of
    bidBack: Button:=WizardForm.BackButton
    bidNext: Button:=WizardForm.NextButton
    bidCancel: Button:=WizardForm.CancelButton
    bidDirBrowse: Button:=WizardForm.DirBrowseButton
    bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
  else
    Exit
  end
  Button.OnClick(Button)
end;

procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if ButtonLabel[TLabel(Sender).Tag].Enabled then
     ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth
end;

procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ButtonImage[TLabel(Sender).Tag].Left:=0
end;

procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
  Image: TBitmapImage;
  Panel: TPanel;
  Labl: TLabel;

begin
  Panel:=TPanel.Create(WizardForm)
  Panel.Left:=AButton.Left
  Panel.Top:=AButton.Top
  Panel.Width:=AButton.Width
  Panel.Height:=AButton.Height
  Panel.Tag:=AButtonIndex
  Panel.Parent:=AButton.Parent
  ButtonPanel[AButtonIndex]:=Panel

  Image:=TBitmapImage.Create(WizardForm)    //Рисунок который ложится на кнопку
  Image.Width:=160                          //Обязательно прописать оригинальный размер рисунка
  Image.Height:=23
  Image.Enabled:=False
  Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'))
  Image.Parent:=Panel
  ButtonImage[AButtonIndex]:=Image

  with TLabel.Create(WizardForm) do begin
    Tag:=AButtonIndex
    Parent:=Panel
    Width:=Panel.Width
    Height:=Panel.Height
    Transparent:=True
    OnClick:=@ButtonLabelClick
    OnDblClick:=@ButtonLabelClick
    OnMouseDown:=@ButtonLabelMouseDown
    OnMouseUp:=@ButtonLabelMouseUp
  end

  Labl:=TLabel.Create(WizardForm)        //Текст кнопок
  Labl.Left:=23                          //Указываем положение текста
  Labl.Top:=5
  Labl.Autosize:=True
  Labl.Alignment:=taCenter
  Labl.Tag:=AButtonIndex
  Labl.Transparent:=True
  Labl.Font.Color:=clWhite               //Цвет текста
  Labl.Caption:=AButton.Caption
  Labl.OnClick:=@ButtonLabelClick
  Labl.OnDblClick:=@ButtonLabelClick
  Labl.OnMouseDown:=@ButtonLabelMouseDown
  Labl.OnMouseUp:=@ButtonLabelMouseUp
  Labl.Parent:=Panel
  ButtonLabel[AButtonIndex]:=Labl
end;

procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
  ButtonLabel[AButtonIndex].Caption:=AButton.Caption
  ButtonPanel[AButtonIndex].Visible:=AButton.Visible
  ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled
end;

procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled:=True
end;

procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled:=False
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  UpdateButton(WizardForm.BackButton,bidBack)
  UpdateButton(WizardForm.NextButton,bidNext)
  UpdateButton(WizardForm.CancelButton,bidCancel)
  ButtonLabel[bidBack].Left := (ButtonPanel[bidBack].Width / 2 - ButtonLabel[bidBack].Width / 2);
  ButtonLabel[bidNext].Left := (ButtonPanel[bidNext].Width / 2 - ButtonLabel[bidNext].Width / 2);
  ButtonLabel[bidCancel].Left := (ButtonPanel[bidCancel].Width / 2 - ButtonLabel[bidCancel].Width / 2);
  ButtonLabel[bidDirBrowse].Left := (ButtonPanel[bidDirBrowse].Width / 2 - ButtonLabel[bidDirBrowse].Width / 2);
  ButtonLabel[bidGroupBrowse].Left := (ButtonPanel[bidGroupBrowse].Width / 2 - ButtonLabel[bidGroupBrowse].Width / 2);
end;

procedure InitializeWizard();
begin
  WizardForm.BackButton.Width:=ButtonWidth
  WizardForm.BackButton.Height:=ButtonHeight

  WizardForm.NextButton.Width:=ButtonWidth
  WizardForm.NextButton.Height:=ButtonHeight

  WizardForm.CancelButton.Width:=ButtonWidth
  WizardForm.CancelButton.Height:=ButtonHeight

  WizardForm.DirBrowseButton.Left:=337
  WizardForm.DirBrowseButton.Width:=ButtonWidth
  WizardForm.DirBrowseButton.Height:=ButtonHeight

  WizardForm.GroupBrowseButton.Left:=337
  WizardForm.GroupBrowseButton.Width:=ButtonWidth
  WizardForm.GroupBrowseButton.Height:=ButtonHeight

  WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick

  WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick

  ExtractTemporaryFile('button.bmp')
  LoadButtonImage(WizardForm.BackButton,bidBack)
  LoadButtonImage(WizardForm.NextButton,bidNext)
  LoadButtonImage(WizardForm.CancelButton,bidCancel)
  LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse)
  LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse)
end;



если просто объединить то вот что выйдет


Последний раз редактировалось Imitri7, 25-10-2010 в 22:17.


Отправлено: 21:58, 25-10-2010 | #2524


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


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

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


здравствуйте я здесь новенький и хочу узнать как установить скрипт Need for Speed™ Undercover.iss v 2.2 (Final) и другие ???я умею делать простые репаки без всяких картинок и.т.д Но я хочу научиться делать такие как в этом скрипте который я указал выше !!! очень надеюсь на вашу помощь.

Отправлено: 22:16, 25-10-2010 | #2525


Аватара для shao

Ветеран


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

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


Цитата serg aka lain:
А в данном случае »
То есть , если я правильно понял для удаления раздела используется флаг uninsdeletekey
Для удаления параметров - флаг uninsdeletevalue

Но дело в том , что я ..
Цитата shao:
Пробовал ставить флаги uninsdeletekey, uninsdeletekeyifempty, uninsdeletevalue, комбинировал их - всё безрезультатно... »
Может ли влиять на удаление параметров реестра то , что при деинсталляции программы сразу не удаляются несколько файлов , которые задействованы системой/которые висят в процессах, а также зарегистрированные DLL-ки. А полностью удаляются эти файлы только после перезагрузки системы. Перезагрузку предлагает сама программа после отработки деинсталляции, поскольку в секции [Files]
для этих файлов указан флаг uninsrestartdelete .

И подскажите пожалуйста, как альтернативу, можно ли использовать такой вариант для удаления раздела реестра ?
Код: Выделить весь код
[UninstallRun]
Filename: {sys}\cmd.exe; Parameters: /c Reg Delete "HKCU\Software\MyProg" /f; Flags: runhidden

Отправлено: 22:23, 25-10-2010 | #2526


Аватара для kenny_danger

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


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

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


здравствуйте уважаемые пользователи
хочу задать вам такие вопросы

1----------------------------------------
допустим у меня в скрипте
Код: Выделить весь код
DefaultDirName={pf}\Steam\steamapps\your_account\counter-strike source\
но вовремя установки при выборе путя куда устанавливать данную программу автоматом дописывается "counter-strike source"
как сделать так что это не дописывалось

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

Отправлено: 23:23, 25-10-2010 | #2527


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


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

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


Цитата shao:
Может ли влиять на удаление параметров реестра то , что при деинсталляции программы сразу не удаляются несколько файлов , которые задействованы системой/которые висят в процессах, а также зарегистрированные DLL-ки. А полностью удаляются эти файлы только после перезагрузки системы. Перезагрузку предлагает сама программа после отработки деинсталляции, поскольку в секции [Files]
для этих файлов указан флаг uninsrestartdelete . »
Возможно они и загружены(используются).
Цитата shao:
И подскажите пожалуйста, как альтернативу, можно ли использовать такой вариант для удаления раздела реестра ? »
Можно конечно, только имхо cmd нужно юзать тогда, когда стандартными средствами никак ...
Еще можно попытаться закрыть программу перед удалением.
Вот ещё вариант, в принципе тоже самое uninsdeletekey
Код: Выделить весь код
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usDone then
    RegDeleteKeyIncludingSubkeys(HKCU, 'Software\MyProg');
end;

kenny_danger

Цитата kenny_danger:
как сделать так что это не дописывалось »
[Setup]
AppendDefaultDirName=False
Цитата kenny_danger:
как сделать так чтобы после выбора пользователем определенной папки установки программы в ней удалялись определенные
файлы или папки перед копированием самой программы через инсталлятор »
[InstallDelete]
Type: files; Name: "{app}\File.txt"
Type: filesandordirs; Name: "{app}\Path";
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:49, 25-10-2010 | #2528


Аватара для shao

Ветеран


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

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


serg aka lain, Благодарю, за предложенные варианты!

Цитата serg aka lain:
Еще можно попытаться закрыть программу перед удалением. »
Об этом я тоже думал, но не знаю как сделать стандартными средствами. Только через CMD.
Хотя , перед деинсталляцией программы пробовал все процессы вручную остановить и все-равно раздел реестра не удалялся.

Отправлено: 00:05, 26-10-2010 | #2529


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


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

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


Цитата shao:
Хотя , перед деинсталляцией программы пробовал все процессы вручную остановить и все-равно раздел реестра не удалялся. »
Тогда через перезагрузку.

Вариант с RegDeleteKeyIncludingSubkeys(HKCU, 'Software\MyProg') помог?

Отправлено: 00:43, 26-10-2010 | #2530



Компьютерный форум 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




 
Переход