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

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

 

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


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

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


Цитата Serega:
Прочитайте у себя в реестре раздел - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI, какое значение LastLoggedOnUser ? »
значение соападает с именем пользователя
т.е. то что надо.
но скрипт выводи расположение папки админа

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



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

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


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


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

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


Господа. Прошу помощи. Всю голову себе сломал, но ни чего не получается. Одна надежда на профи, то есть на вас.

Пытался сделать репак на Fallout New Vegas, со всеми дополнениями, русиком, и кряком.

Но при запуске игры, она пишет, что не видит INI файлы. То есть лаучер не работает, В игре начинаются баги, такие как крутящиеся головы, народ не ходит, а просто ездит. Но при замене файлов реэстра на оригинальные, все встает на место. Прошу подсказать, что сделал не так. Скрипт прилагаю. Заранее благодарен.

Код: Выделить весь код
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
DiskSpanning=true
DiskSliceSize=1457664000
AppName=Fallout New Vegas
AppVerName=Fallout New Vegas 1.2
AppPublisher=Bethesda Softworks
AppPublisherURL=Necromant Soft
AppSupportURL=Necromant Soft
AppUpdatesURL=Necromant Soft
DefaultDirName={pf}\Bethesda Softworks\Fallout New Vegas
DefaultGroupName=Fallout New Vegas
AllowNoIcons=yes
OutputDir=G:\инсталятор\1
OutputBaseFilename=setup
WizardImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp008.bmp
WizardSmallImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp004.bmp
Compression=none
SolidCompression=true
InternalCompressLevel=none
WindowVisible=true
BackColor=clMaroon

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

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: G:\инсталятор\Fallout New Vegas\FalloutNV.exe; DestDir: {app}; Flags: ignoreversion
Source: G:\инсталятор\Fallout New Vegas\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: {group}\Fallout New Vegas; Filename: {app}\FalloutNV.exe
Name: {group}\{cm:ProgramOnTheWeb,Fallout New Vegas}; Filename: Necromant Soft
Name: {group}\{cm:UninstallProgram,Fallout New Vegas}; Filename: {uninstallexe}
Name: {commondesktop}\Fallout New Vegas; Filename: {app}\FalloutNV.exe; Tasks: desktopicon; Flags: createonlyiffileexists; WorkingDir: {app}
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Fallout- New Vegas; Filename: {app}\FalloutNV.exe; Tasks: quicklaunchicon

[Run]
Filename: {app}\FalloutNV.exe; Description: {cm:LaunchProgram,Fallout- New Vegas}; Flags: nowait postinstall skipifsilent

[Registry]
Root: HKLM; SubKey: SOFTWARE\Bethesda Softworks\FalloutNV; ValueType: string; ValueName: Installed Path; ValueData: {app}

Отправлено: 23:45, 04-11-2010 | #2623


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


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

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


Цитата necromanster:
при замене файлов реэстра на оригинальные, все встает на место. »
Ну и допишите эти ключи реестра в свой скрипт.

Отправлено: 01:22, 05-11-2010 | #2624


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


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

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


Цитата serg aka lain:
Ну и допишите эти ключи реестра в свой скрипт. »
Так я и вписал их:

Код: Выделить весь код
[Registry]
Root: HKLM; SubKey: SOFTWARE\Bethesda Softworks\FalloutNV; ValueType: string; ValueName: Installed Path; ValueData: {app}
Я взял файлы реэстра. которые были туда вложены при распаковке оригинального образа (фениксом)

Но что то не стыкуется. Игра их не видит. И по этому все на перекосяк. У меня просто сохранены оригинальные файлы, и после того как я удаляю те которые были вложены в реэстр уже репаком, и заменяю оригинальными, то все работает. Странно. Ведь одно и тоже.

Отправлено: 01:39, 05-11-2010 | #2625


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


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

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


Цитата necromanster:
Странно. Ведь одно и тоже. »
Пробуйте так:
Код: Выделить весь код
[Registry]
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks; Flags: uninsdeletekeyifempty;
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; ValueType: string; ValueName: Installed Path; ValueData: {app}\;
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:57, 05-11-2010 | #2626


Аватара для Henry_Townsend

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


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

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


Вобщем, есть такой скрипт для текстурирования кнопки "Отмена", вынесеную на передний план. Всё хорошо, вот только текстура отображается и на странице завершения установки где самой кнопки нет и быть не должно . Можно ли как-то отключить LoadButtonImage(WizardForm.CancelButton,bidCancel) ?


П.С.Задаю вопрос второй раз и буду благодарен за любую помощь, даже за сообщения, что это в Inno Setup невыполнимо.


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

[Setup]
AppName=Test Setup
AppVerName=1.0
DefaultDirName={pf}\Temp
OutputDir=.
AppCopyright=© forum.oszone.net

[Files]
Source: button.bmp; DestDir: {tmp}; Flags: dontcopy;
Source: compiler:Examples\*; DestDir: {app}; Flags: IgnoreVersion recursesubdirs createallsubdirs;

[_code_]
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

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 InitializeWizard();
begin
WizardForm.BackButton.Width:=ButtonWidth
WizardForm.BackButton.Height:=ButtonHeight

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

WizardForm.CancelButton.BringToFront;
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;

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);
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);
LoadButtonImage(WizardForm.CancelButton,bidCancel) // вот тут и есть корень зла
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;

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


Последний раз редактировалось Henry_Townsend, 12-11-2010 в 16:39.


Отправлено: 17:24, 05-11-2010 | #2627


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


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

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


Цитата serg aka lain:
Пробуйте так:
Код:
[Registry]
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks; Flags: uninsdeletekeyifempty;
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; Flags: uninsdeletekey;
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; ValueType: string; ValueName: Installed »
Спасибо большее. Теперь все работает. И на семерке, и на ХР. Респект, и уважуха.

Отправлено: 18:28, 05-11-2010 | #2628


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


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

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


Цитата Henry_Townsend:
Всё хорошо, вот только текстура отображается и на странице завершения установки где самой кнопки нет и быть не должно . Можно ли как-то отключить LoadButtonImage(WizardForm.CancelButton,bidCancel) ? »
а зачем вы её загружаете ещё один раз?, она и так там есть.
если вы меняете положение кнопки Cancel, то и меняйте положение ButtonPanel.
выбросите вот это LoadButtonImage(WizardForm.CancelButton,bidCancel),
и добавьте новое положение ButtonPanel:
Код: Выделить весь код
WizardForm.CancelButton.Left := ScaleX(122);
WizardForm.CancelButton.Top := ScaleY(70);
ButtonPanel[bidCancel].Left := WizardForm.CancelButton.Left;
ButtonPanel[bidCancel].Top :=  WizardForm.CancelButton.Top;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:44, 05-11-2010 | #2629


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


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

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


when i try to compile FreeArc_Example.iss gives me this error

Отправлено: 15:08, 06-11-2010 | #2630



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




 
Переход