Inno Setup

Про софт и железки.
Сообщение
Автор
South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#31 Сообщение 16.10.2007, 23:18

impulse666
я уже нашел последнюю версию http://uk.un4seen.com/files/bass23.zip (это офф релиз вроде)

вот держи, не знаю че ты парился, там на 1 минуту копи-паста

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

[Setup]
SourceDir=.
OutputDir=setup
AppName=Counter-Strike Source
AppVerName=Counter-Strike Source
AppPublisher=South
DefaultDirName={pf}\Counter-Strike Source
DefaultGroupName=Counter-Strike Source
AllowNoIcons=yes
;InfoBeforeFile=resources\BeforeInstall.rtf
OutputBaseFilename=setup
;WizardImageFile=resources\css_two_small.bmp
;WizardSmallImageFile=resources\css_one_bw_small.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=731906048
SlicesPerDisk=1
;Password=111
;SetupIconFile=resources\game.ico


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

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

[Components]
Name: "main"; Description: "Counter-Strike:Source"; Types: full custom; Flags: fixed disablenouninstallwarning
Name: "lang"; Description: "Версия"; Types: full custom; Flags: fixed disablenouninstallwarning
Name: "lang\rus"; Description: "Русская"; Flags: exclusive disablenouninstallwarning
Name: "lang\rus\rus_sounds"; Description: "Установить русскую озвучку (только 'cstrike\sound\radio\')"; Flags: dontinheritcheck
Name: "lang\eng"; Description: "Английская"; Flags: exclusive disablenouninstallwarning
Name: "background_pict"; Description: "Заменить фоновый рисунок в меню"; Types: full
Name: "background_sound"; Description: "Добавить фоновую музыку в меню"; Types: full
Name: "add_maps"; Description: "Установить дополнительные карты"; Types: full
Name: "add_mod"; Description: "Установить мод 'замедление времени'"; Types: full

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

[Files]
;временные файлы для инсталятора
Source: resources\*; DestDir: "{tmp}"; Flags: ignoreversion dontcopy nocompression

[Icons]
Name: "{group}\Counter-Strike Source"; Filename: "{app}\cssource.exe"
Name: "{group}\{cm:UninstallProgram,Counter-Strike Source}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\Counter-Strike Source"; Filename: "{app}\cssource.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\cssource.exe"; Description: "{cm:LaunchProgram,CS Source}"; Flags: nowait postinstall skipifsilent

[Registry]
Root: HKCU; Subkey: "Software\Valve\Steam"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Valve\Steam"; ValueType: string; ValueName: "Path"; ValueData: "{app}"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Valve\Steam"; ValueType: string; ValueName: "Language"; ValueData: "russian"; Components: "lang\rus"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Valve\Steam"; ValueType: string; ValueName: "Language"; ValueData: "english"; Components: "lang\eng"; Flags: uninsdeletekey

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

[_ISTool]
EnableISX=True

; убери подчеркивание в названии секции, это чтобы на форуме теги не путались
[Code_]

const
  BASS_SAMPLE_LOOP        = 4;   //повторение
type
  HSTREAM = DWORD;      //тип звукового потока
var
  RadioButton1: TRadioButton;
  RadioButton2: TRadioButton;
  RadioButton3: TRadioButton;

function GetSystemMetrics(nIndex:Integer):Integer; external '[email protected] stdcall';
function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; external 'BASS_Init@files:BASS.dll stdcall delayload';
function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM; external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';
function BASS_Start(): Boolean; external 'BASS_Start@files:BASS.dll stdcall delayload';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';
function  BASS_Stop(): Boolean; external 'BASS_Stop@files:BASS.dll stdcall delayload';
function  BASS_Free(): Boolean; external 'BASS_Free@files:BASS.dll stdcall delayload';





procedure URLLabelOnClick(Sender: TObject);
var
     ErrorCode: Integer;
begin
     ShellExec('open', 'http://csmania.ru/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
var
  BackgroundBitmapImage: TBitmapImage;
  s:string;
  width, height:Integer;
  URLLabel: TNewStaticText;
  mp3file:string;
  i:integer;
begin
  RadioButton1 := TRadioButton.Create(WizardForm.FinishedPage);
  with RadioButton1 do begin
    Parent := WizardForm.FinishedHeadingLabel.Parent;
    Caption := 'Запуск Half-Life 2 Episode 2';
    Left := ScaleX(180);
    Top := ScaleY(155);
    Width := ScaleX(177);
    Height := ScaleY(17);
    TabOrder := 0;
  end;

  RadioButton2 := TRadioButton.Create(WizardForm.FinishedPage);
  with RadioButton2 do begin
    Parent := WizardForm.FinishedHeadingLabel.Parent;
    Caption := 'Запуск Team Fortress 2';
    Left := ScaleX(180);
    Top := ScaleY(175);
    Width := ScaleX(177);
    Height := ScaleY(17);
    TabOrder := 1;
  end;

  RadioButton3 := TRadioButton.Create(WizardForm.FinishedPage);
  with RadioButton3 do begin
    Parent := WizardForm.FinishedHeadingLabel.Parent;
    Caption := 'Запуск Portal';
    Left := ScaleX(180);
    Top := ScaleY(195);
    Width := ScaleX(177);
    Height := ScaleY(17);
    TabOrder := 2;
  end;

  WizardForm.Position:=poScreenCenter;
  MainForm.BORDERSTYLE:=bsNone;
  width:=GetSystemMetrics(0);
  height:=GetSystemMetrics(1);
  MainForm.Left := 0;
  MainForm.Top := 0;
  MainForm.Width:=width;
  MainForm.Height:=height;
  width:=MainForm.ClientWidth;
  height:=MainForm.ClientHeight;
  ExtractTemporaryFile('background.bmp');
  s:=ExpandConstant('{tmp}')+'\background.bmp';
  BackgroundBitmapImage := TBitmapImage.Create(MainForm);
  BackgroundBitmapImage.Bitmap.LoadFromFile(s);
  BackgroundBitmapImage.Align := alClient;
  BackgroundBitmapImage.Parent := MainForm;
  BackgroundBitmapImage.Stretch:=True;
  MainForm.Visible:=True;
  URLLabel := TNewStaticText.Create(WizardForm);
  URLLabel.Caption := 'www.csmania.ru %)';
  URLLabel.Parent := WizardForm;
  URLLabel.Cursor := crHand;
  URLLabel.OnClick := @URLLabelOnClick;
  URLLabel.Font.Style := [fsUnderline];
  URLLabel.Top := ScaleY(331);
  URLLabel.Left := ScaleX(25);

  ExtractTemporaryFile('BASS.dll');
  ExtractTemporaryFile('clawfinger.mp3');

  if BASS_Init(-1,44100,0,0,0) then begin
    BASS_Stop();  //это на всякий случай, вдруг что-нибудь уже проигрывается (хотя откуда ему здесь взяться)
    BASS_Start();
    mp3file:=ExpandConstant('{tmp}\clawfinger.mp3');
    i:=BASS_StreamCreateFile(FALSE, PChar(mp3file), 0, 0, 4);
    if i<>0 then BASS_ChannelPlay(i, True);
  end;

end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  ResultCode: Integer;
begin
  Result:=True;
  if CurPageID=wpFinished then begin
    if RadioButton1.Checked then
      Exec(ExpandConstant('{app}\RUN_EP2.exe'), '', '', SW_SHOW,ewNoWait, ResultCode)
    else
      if RadioButton2.Checked then
        Exec(ExpandConstant('{app}\RUN_TF2.exe'), '', '', SW_SHOW,ewNoWait, ResultCode)
      else
        if RadioButton3.Checked then Exec(ExpandConstant('{app}\RUN_PORTAL.exe'), '', '', SW_SHOW,ewNoWait, ResultCode)
  end
end;

procedure DeInitializeSetup();
begin
  BASS_Stop(); //нужно для остановки проигрывания
  BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;

это мой бывший скрипт установки CSSource, я из него поудалял все ненужное

в папке "путь_к_скрипту\resources\" должны лежать bass.dll, clawfinger.mp3 и background.bmp
в такой комплектации этот скрипт работает :) (проверено с bass.dll по моей ссылке)

думаю с секцией

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

[/b] разберешься

кстати есть у кого-нибудь описание по использованию bass.dll на русском? если есть киньтесь ссылкой буду признателен
Последний раз редактировалось South 24.11.2007, 00:16, всего редактировалось 1 раз.

Das_Monster
Сержант
Сержант
Сообщения: 54
Зарегистрирован: 04.12.2005
Откуда: DaRKNESS
Благодарил (а): 2 раза
Поблагодарили: 2 раза

#32 Сообщение 17.10.2007, 03:28

Я к InnoSetup юзаю GUI - ISTool, он кстати тоже на днях обновился до v5.2.1. Мне с гуишкой проще, чем напрмер самому скрипт писать :twisted: .

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#33 Сообщение 17.10.2007, 05:47

htuos
спс, все работает!
...ты не повереш, 3 человека из КЛ несмогли мне помоч...правда они знали просто паскаль...ИноСетап у них и нистоял никогда..

..описания к нему не встречал :(
Das_Monster
да она у меня тоже есть, полезна бывает..
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#34 Сообщение 17.10.2007, 14:41

impulse666 писал(а):спс, все работает!
...ты не повереш, 3 человека из КЛ несмогли мне помоч...правда они знали просто паскаль...ИноСетап у них и нистоял никогда..
чтобы это написать не обязательно видеть innosetup, достаточно знаний паскаля

Das_Monster
GUI - ISTool, может где-то и полезно, сам не пользовался, но не думаю, что она за тебя секцию

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

 напишет. по мне и ручками все очень просто делается. а вот если ты через гуи свои скрипты делаешь, то тебе в чужом скрипте разобраться будет скорее всего очень сложно :)

ЗЫ что такое КЛ?
все пропало

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#35 Сообщение 17.10.2007, 14:52

Да, код она за тебя не напишет, а вот указать рабочую папку, или там ключи из *reg файликов прописать она может %)

КЛ - КонтактЛист... %)
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#36 Сообщение 17.10.2007, 15:57

impulse666 писал(а):Да, код она за тебя не напишет, а вот указать рабочую папку, или там ключи из *reg файликов прописать она может %)

ну, в реестр инносетап умеет и своими средствами писать как ты мог заметить
про рабочую папку в ярлыке аналогично:

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

[Icons]
Name: "{group}\Counter-Strike Source"; Filename: "{app}\cssource.exe"; WorkingDir: {app}
кто тебе мешает так написать?
impulse666 писал(а):КЛ - КонтактЛист... %)
ну вот, совсем от жизни отстал, примитивных сокращений не понимаю :D
все пропало

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#37 Сообщение 17.10.2007, 16:01

htuos
ничто, но ручной труд как правило малопроизводителен %)
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#38 Сообщение 17.10.2007, 16:32

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

Das_Monster
Сержант
Сержант
Сообщения: 54
Зарегистрирован: 04.12.2005
Откуда: DaRKNESS
Благодарил (а): 2 раза
Поблагодарили: 2 раза

#39 Сообщение 18.10.2007, 02:01

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

но не думаю, что она за тебя секцию напишет.
Ну я еще не не "дорос" до него, да и в IStool все равно мне уже удобней, чем в "голой! Inno.
а вот указать рабочую папку, или там ключи из *reg файликов прописать она может %)
Не то слово, я еще к тому же через "драг и дроп" ранее экспортированый рег файл чаще всего юзаю, поэтому вообще ничего писать не надо, тока поменяешь пару значений...
к тому же однажды написанный скрипт выступает в качестве шаблона, так что работы на самом деле минимум
Ну так тоже самое и для меня, тока мне в Istool надо еще меньше телеодвижений, "драгнул" файло для паковки, потом рег файл, потом ини (если нужен), поправил ярлыки и названия и запускаю паковку. Минуты 3 занимает все.

Я в основном перепаковываю игровые пиратки (то етсь включаю обновления, руссик нормальный) и естественно нашу любимую CS первожиу из лицензии...

South
Разработчик
Разработчик
Сообщения: 287
Зарегистрирован: 18.06.2006
Откуда: с работы
Поблагодарили: 2 раза

#40 Сообщение 18.10.2007, 18:27

я уже говорил: кому что нравится ...
к тому же я привык работать only keyboard (так быстрее имхо), дергать руку от клавы к мыши меня это раздражает
все пропало

Аватара пользователя
postal_3
Полковник
Полковник
Сообщения: 1092
Зарегистрирован: 22.04.2006
Благодарил (а): 461 раз
Поблагодарили: 734 раза
Контактная информация:

#41 Сообщение 25.10.2007, 04:19

Обновлен первый пост :)

Изменения:
  • The Setup loader now extracts the Setup program executable file with a ".tmp" extension. Versions 5.2.0 and 5.2.1 used a ".exe.tmp" extension, which reportedly, in some cases, caused an "Unable to execute file in temporary directory" error message on systems with a certain antivirus program installed. We were unable to reproduce the error in our own tests, however; it is suspected that this may have only impacted users with custom filename blocking rules defined in their antivirus configuration.
  • Pascal Scripting: Added new GetSaveFileName support function.
  • Fix: The compiler could fail with an "Out of memory" error on script files containing more than ~100,000 lines, due to a heap fragmentation issue.
"В церковь не ходите, а свадьбы вкруг березы водите, как велят старинные обычаи..."
из наставлений С. Разина

dimiroff
Сержант
Сержант
Сообщения: 70
Зарегистрирован: 10.12.2006
Откуда: Хорошо там, где нас нет. TPS
Контактная информация:

#42 Сообщение 05.11.2007, 18:48

А скрипты Inno Setup-овские под Half-life 2 Episode Two и Portal у кого-нибудь есть, если есть то скиньте. Только по отдельности, очень надо. Заранее спасибо.

msblast
Нович0к
Нович0к
Сообщения: 29
Зарегистрирован: 21.12.2006

#43 Сообщение 05.11.2007, 22:33

dimiroff писал(а):А скрипты Inno Setup-овские под Half-life 2 Episode Two и Portal у кого-нибудь есть, если есть то скиньте. Только по отдельности, очень надо. Заранее спасибо.
посмотри как написаны для других игр-так же и пиши сам
проблем нет вообще, даже если человек в програмировании 0 последний
там все до боли банально

Victor_Dobrov
Нович0к
Нович0к
Сообщения: 5
Зарегистрирован: 09.01.2008

#44 Сообщение 09.01.2008, 01:05

ИзображениеCorona Skin & Check System Requirements - данный пакет заменит оформление Inno Setup на стиль WMP9, встроит в инсталлятор тест системы и другие уникальные возможности и упростит создание своих скриптов.
Финальная версия 5.1 от 20-12-07. Код оптимизирован с целью уменьшить конечный объём инсталлятора. Горячие клавиши: F1-12, Ctrl + A (Мини-справка), S, D, F, X. Дополнения: клик на WizardSmallImage скрывает фоновое окно. Ключ CalcAppDir необязателен, AutoPass скрывает страницу ввода пароля. Проигрыватель: добавлены форматы AVI, XM, IT, MOD, MO3, улучшена обработка ошибок. Исправлена функция CalcDirSize. Доработаны функции проверки пароля/серийника. Сообщения не перекрываются анимацией. Изменено оформление страниц wpSelectProgramGroup, wpSelectDir, wpPassword, wpUserInfo, wpLicense. Ключ /NOMUSIC отключает автовоспроизведение при запуске. Прогрессбар: расчёт времени до завершения распаковки, если убрать Copy.avi, появится список файлов. Добавлен общий логотип для скриптов. В режиме SILENT деинсталлятор не запускается, а происходит перезапись. Если NeedMB не указывать, значение берётся из ComponentsDiskSpaceLabel.

InnoSetup Upgrade- расширение возможностей Inno Setup.
Проверка минимальных требований, подсчёт объёма папок, список дисков на wpSelectDir, список папок на wpSelectProgramGroup, защита системной папки, выбор вариантов деинсталляции, деинсталляция неучтённых файлов, подсчёт времени установки.
Подключение этого расширения добавляет к инсталлятору всего 11 Кбайт.

Слайдшоу- 5 скриптов: рисунок в фоне, слайдшоу, скринсевер + системные, AVI-файл в фоне.

msblast
Нович0к
Нович0к
Сообщения: 29
Зарегистрирован: 21.12.2006

#45 Сообщение 10.01.2008, 19:46

InnoSetup Upgrade -как заставить его подключить этот модуль, а то на инклуд ругается....говорит мол незнаю что это такое

Ответить