Inno Setup GameScript Generator

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#271 Сообщение 07.07.2009, 07:29

Valera2009 писал(а):+еше хотелось бы чтобы доп компоненты можно было не просто разархивировать но и запустить допустим доп.компонентами сделать Diretx и NetFrameWork а то я чот сам не могу додуматся как вручную прописать :$
Valera2009 писал(а):
M1ke писал(а):только, спрашивается зачем что-то пережимать что-то два раза...не проще ли сразу через IS файлы зажать с LZMA-сжатием?
поподробней blink

Код: Выделить всё

[Setup]
;Compression=lzma/ultra
Compression=lzma
;рекомендую также использовать следующее
SolidCompression=yes
Дальше уже зажимаешь простые файлы, а не отдельный 7z архив, который потом тоже распаковывать.
RomanSnegov писал(а):а как запустить их в "сайлент" - другой вопрос.. :)
для .NET Framework придется распаковать dotnetfx.exe (заранее) и из распакованного контента запустить install.exe с параметром "/q" . Также можно попробовать флаг (это уже к Inno) runhidden (shellexec я поставил на всякий пожарный %) )

Код: Выделить всё

[Run]
Filename: "{tmp}\framework20\install.exe"; Parameters: "/q"; Flags: shellexec runhidden
Касательно DirectX, можно также запустить её с параметром runhidden, но тогда процесс никуда не сдвинется - некому будет кнопки нажимать. Тогда, конечно, можно достать хендл диалогового окна и кнопки далее, чтоб её SendMessage-ем "нажимать" (BM_CLICK), но это гемор. По сему можно запустить dxsetup.exe в обычном режиме, чтоб пользователь мог понажимать эти кнопочки сам.

M1ke
Модератор
Модератор
Сообщения: 1464
Зарегистрирован: 17.06.2007
Откуда: 54
Благодарил (а): 2 раза
Поблагодарили: 90 раз
Контактная информация:

#272 Сообщение 07.07.2009, 12:41

тихий запуск(файл запускается в независимости от желания пользователя) выглядит вот так%)

Код: Выделить всё

[Run]
Filename: "{app}\ReadMe.txt"; Flags: shellexec skipifsilent
Да, и степень сжатия лучше выяснить опытным путём - попробовать посжимать файлы на max, ultra и ultra64 - у меня лучшее сжатие не всегда получается на ultra64%)
Изображение
Изображение
Изображение

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#273 Сообщение 07.07.2009, 13:12

Ты че! SkipIfSilent переведи. ПропуститьЕслиТихаяустановка. То есть, на запуск принцип самого приложения это никак не влияет.

M1ke
Модератор
Модератор
Сообщения: 1464
Зарегистрирован: 17.06.2007
Откуда: 54
Благодарил (а): 2 раза
Поблагодарили: 90 раз
Контактная информация:

#274 Сообщение 07.07.2009, 13:33

$t@t!c_V()1D писал(а):принцип самого приложения это никак не влияет.
M1ke писал(а):файл запускается в независимости от желания пользователя
он запускается автоматом, только и всего%)
Изображение
Изображение
Изображение

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#275 Сообщение 07.07.2009, 14:47

Блин, на принцип запуска %) . Я тебе говорю, параметр переведи - он здесь ни и чему.

Аватара пользователя
Valera2009
Сержант
Сержант
Сообщения: 64
Зарегистрирован: 04.07.2009

#276 Сообщение 07.07.2009, 21:50

RomanSnegov писал(а):
Valera2009 писал(а):

Код: Выделить всё

[Run]
Filename: "{app}dir.exe";
а как запустить их в "сайлент" - другой вопрос.. :)
мне сайлент и не нужен но я немного тебя не понял
То есть нужно допустим в создавателе скриптов указать их доп компонентами а потом в скрипте дописать Filename: "{app}dir.exe" ? ну только с нужной мне папкой и файлом) :blush:

Добавлено спустя 4 минуты 5 секунд:
M1ke писал(а):тихий запуск(файл запускается в независимости от желания пользователя) выглядит вот так%)

Код: Выделить всё

[Run]
Filename: "{app}ReadMe.txt"; Flags: shellexec skipifsilent
Да, и степень сжатия лучше выяснить опытным путём - попробовать посжимать файлы на max, ultra и ultra64 - у меня лучшее сжатие не всегда получается на ultra64%)
хм ну просто у меня сжатие не всегда быстро делается на ультра64 недавно 40минут компилировал 4гб :O:

Добавлено спустя 57 минут 7 секунд:
[spoiler=""скрипт""]Вот как бы мой скрипт допустим

Код: Выделить всё

[Setup]
SourceDir=.
OutputDir=Setup
AppName=Virtua Tennis 2009
AppVerName=Virtua Tennis 2009
AppVersion=Virtua Tennis 2009
AppPublisher=valera2009
AppCopyright=valera2009
AppPublisherURL=pirat.ca
AppSupportURL=pirat.ca
AppUpdatesURL=pirat.ca
DefaultDirName={pf}Virtua Tennis 2009
DefaultGroupName=Virtua Tennis 2009
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=D:logo.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/ultra64
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=2100000000
SlicesPerDisk=1

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

[Types]
Name: "full";   Description: "Полная установка"
Name: "custom"; Description: "Выборочная установка"; Flags: iscustom

[Components]
Name: g0; Description: Virtua Tennis 2009; Types: full custom; Flags: disablenouninstallwarning checkablealone fixed
Name: g0c1; Description: Net Framework; Types: full; Flags: exclusive
Name: g0c2; Description: Diretx; Types: full; Flags: exclusive

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

[Files]
Source: I:Закачка ИюльРЕпакиTennis1.reg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: I:Закачка ИюльРЕпакиTennis2.reg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: "D:GAMESVirtua Tennis(TM) 2009*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "I:ЕкспериментыТеннисNet Frameworc*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0c1
Source: "I:ЕкспериментыТеннисdirectx9c*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0c2

[Icons]
Name: "{group}Virtua Tennis 2009"; Filename: "{app}Virtua Tennis 2009.EXE"; WorkingDir: "{app}";
Name: "{userdesktop}Virtua Tennis 2009"; Filename: "{app}Virtua Tennis 2009.EXE"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}{cm:UninstallProgram,Virtua Tennis 2009}"; Filename: "{uninstallexe}"

[Run]
Description: "{cm:LaunchProgram, Virtua Tennis 2009}"; Filename: "{app}Virtua Tennis 2009.EXE"; WorkingDir: "{app}"; Flags: nowait postinstall skipifsilent unchecked
Filename: {win}
egedit.exe; Parameters: /s {tmp}1.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser; Components: 
Filename: {win}
egedit.exe; Parameters: /s {tmp}2.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser; Components: 
[b]Вот тут как то надо сделать чтобы запускалось:
1)Diretx 
2)Net Framework
Я вот понял как сделать код но с папками я немного не понял как указать папку которая допустим будет там же где и установшик а в этой папке будет нужный файл а то я просто не гений[/b]
[UninstallDelete]
Type: filesandordirs; Name: "{app}"

[Code]
const
  dURL=2;

var
  URLLabel,URLLabelShadow:TLabel;


procedure URLLabelClick(Sender: TObject);
var
  ErrorCode:integer;
begin
  ShellExec('open','pirat.ca','','',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;

function InitializeSetup:boolean;
begin
  ExtractTemporaryFile('1.reg');
  ExtractTemporaryFile('2.reg');
  Result:=True;
end;

procedure InitializeWizard;
begin
  URLLabelShadow:=TLabel.Create(WizardForm);
  with URLLabelShadow do begin
    Top:=ScaleY(331);
    Left:=ScaleX(25);
    Caption:='pirat.ca';
    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:='pirat.ca';
    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;
  WizardForm.TypesCombo.ItemIndex:=0;
end;
[/spoiler]

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#277 Сообщение 08.07.2009, 15:39

Filename: {win}\regedit.exe; Parameters: /s {tmp}\1.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser; Components:
Filename: {win}\regedit.exe; Parameters: /s {tmp}\2.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser; Components:
А в кавычки подчеркнутое нужно или нет? Я просто думаю, что...как бы...пробел есть...впрочем, если компилятор не жалуется, то ладно.

Начнем:
  • Для начала добавь это (я буду использовать "quote" вместо "code", чтоб акцентировать внимание на подчеркнутом).
    Также учти то, что нужен SFX-архив dotnetfx.exe (а это так и есть), не в запакованном, а в распакованном виде (допустим, ты распаковал это в папку "unpacked")
    [Files]
    Source: "I:\Експерименты\Теннис\Net Frameworc\unpacked\*"; DestDir: "{tmp}\NetFrameWork"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1
    Source: "I:\Експерименты\Теннис\directx9c\*"; DestDir: "{tmp}\DirectX"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c2
  • Затем добавь здесь
    [Run]
    Filename: {tmp}\NetFrameWork\install.exe; Parameters: /q; StatusMsg: "Установка .NET FrameWork. Пожалуйста, дождитесь окончания процесса..."; Flags: waituntilterminated runasoriginaluser; Components: g0\c1
    Filename: {tmp}\DirectX\dxsetup.exe; StatusMsg: "Установка DirectX..."; Flags: waituntilterminated runasoriginaluser; Components: g0\c2
Вроде всё. С DirectX я уже сказал, что его не запустить в тихом режиме, поэтому тут ничего неподелаешь, кроме извращения.

Аватара пользователя
Valera2009
Сержант
Сержант
Сообщения: 64
Зарегистрирован: 04.07.2009

#278 Сообщение 08.07.2009, 16:55

$t@t!c_V()1D
Спс большое буду пробывать prankster
Последний раз редактировалось $t@t!c_V()1D 08.07.2009, 16:55, всего редактировалось 2 раза.
Причина: Достаточно нажать на ник и он появится на форме ввода сообщения, чем использовать тег [quote] почем зря.

Аватара пользователя
Fatman
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 20.06.2008
Откуда: Pyroland
Благодарил (а): 1 раз
Поблагодарили: 2 раза
Контактная информация:

#279 Сообщение 09.07.2009, 11:31

$t@t!c_V()1D
Статик скажи как после установки сделать чтобы на папке иконка была :)

Аватара пользователя
Valera2009
Сержант
Сержант
Сообщения: 64
Зарегистрирован: 04.07.2009

#280 Сообщение 09.07.2009, 11:35

Fatman2008
Именно на папке?А зачем это?в основном все пользуются Total Comander и тп. мало кто через "мой компьютер" заходит :lol:

Аватара пользователя
Fatman
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 20.06.2008
Откуда: Pyroland
Благодарил (а): 1 раз
Поблагодарили: 2 раза
Контактная информация:

#281 Сообщение 09.07.2009, 11:40

Valera2009 писал(а):Fatman2008
Именно на папке?А зачем это?в основном все пользуются Total Comander и тп. мало кто через "мой компьютер" заходит :lol:
За себя говори.В Основном. :lol:

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#282 Сообщение 09.07.2009, 11:47

Valera2009
командер используют нормальные мальчики, а нубы(коих большинство) через "мой компутер" и заходят
и не знаю как у тебя, а у меня командер нестандартные иконки папок отображет prankster
Fatman2008
это через Desktop.ini делается

Код: Выделить всё

[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=27
где указываешь файл с иконками, и id нужной иконки

Аватара пользователя
Fatman
Лейтенант
Лейтенант
Сообщения: 112
Зарегистрирован: 20.06.2008
Откуда: Pyroland
Благодарил (а): 1 раз
Поблагодарили: 2 раза
Контактная информация:

#283 Сообщение 09.07.2009, 11:56

Pr0Ger писал(а):Valera2009
командер используют нормальные мальчики, а нубы(коих большинство) через "мой компутер" и заходят
и не знаю как у тебя, а у меня командер нестандартные иконки папок отображет prankster
Fatman2008
это через Desktop.ini делается

Код: Выделить всё

[.ShellClassInfo]
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=27
где указываешь файл с иконками, и id нужной иконки
Спасибо.А если хочу "левую" иконку поставить нужно просто указать путь к ней?

Аватара пользователя
Valera2009
Сержант
Сержант
Сообщения: 64
Зарегистрирован: 04.07.2009

#284 Сообщение 09.07.2009, 12:19

А вот теперь по поводу моих старых компонентов
В обшем проделал я долгий путь пришол вот к чему

Код: Выделить всё

[Components]
Name: g0; Description: Дополнительное ПО; Types: full custom; Flags: disablenouninstallwarning checkablealone fixed
Name: g0\c1; Description: NetFramework 3.5; Types: full; Flags: exclusive
Name: g0\c2; Description: Diretx; Types: full; Flags: exclusive
Правда теперь когда пользователь доходит до выбора то он не может выбрать и Diretx и NetFrameworc как сделать чтобы можно было оба пункта выбрать?

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#285 Сообщение 09.07.2009, 12:23

Да, и тогда индекс ставь равным 0.

Добавлено спустя 2 минуты 10 секунд:
Это я насчёт иконок, а насчёт флагов, легче в справке покопаться - тебе виднее будет.

Добавлено спустя 31 секунду:
Это я насчёт иконок, а насчёт флагов, легче в справке покопаться - тебе виднее будет.

Ответить Вложения 2