Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (25-09-2007 17:33): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно легко самим создавать диалоги, используя спец. дизайнер. И всё это абсолютно бесплатно! По сравнению с NullSoft (основной конкурент на бесплатной ниве) мне albel понравилась более интуитивно-понятная структура скрипта, простота в настройке.  
 
Последний релиз: 5.2.0 [19 сентября 2007 года]
История версий | скачать || скачать Preprocessor
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Английская справка для Inno Setup Preprocessor (ISPP) 5.0.xx
Скачать
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
[3 версия]  
Скачать | зеркало
[4 версия]  
Скачать | зеркало
[5 версия]  
Скачать | зеркало
[5.1 версия]  
Скачать | зеркало
 
Inno Setup Extensions Knowledge Base  
Скачать | зеркало
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать | Скриншот | Справка
Кроме визуального стиля Corona(WMP9) в инсталлятор по выбору пользователя добавляется: Проверка системы/минимальных требований. Шифрование. Деинсталляция неучтённых файлов. Подсчёт времени установки. Расширенный прогрессбар. Экран скриншота/справки. Screensaver, BMP или AVI-файл в фоновом окне. Проигрывание музыки в фоне и многое другое...
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы это исправить добавьте этот код.
Если вы захотите использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства по программированию в Inno Setup) для запуска инсталлятора то вам понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если вы хотите узнать какие ключи в реестр вносит та или иная программа (или игра) то Вам понадобится RegShot.



Дополнительные утилиты для Inno Setup



 
Последний релиз: 5.2.0 [21 сентября 2007 года]
Скачать | зеркало  
(как сказано в описании изменений, добавлена поддержка новых директив 5.2.0)
 
Русификатор
Скачать | зеркало


 
Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки (немного усечённый). Возможно подключение к TotalCommander или FAR с помощью MultiArc плагинов.
 
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.1.14
 
Последний релиз: 0.20 - Тестовая версия [27 августа 2007 года] New
Скачать | зеркало | зеркало


 
Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 5.1.6.9 [09 июля 2006 года]
Скачать 4.2 мб | обновление 3.1 мб
 
Русификатор отGloThin
Скачать с сайта GloThin | Зеркало | Зеркало | зеркало
Пароль: ruboard
Примечание: офф. сайт косо отображается в Oper`е.
 
Новое название проекта на сайте, похоже произошла замена ScriptMaker на:
 
Inno Script Generator

Последний релиз: 1.0.2.11 [7 Августа 2007 года]
Скачать | обновление | Изменения
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.1.13.
 
Примечание для всех участников
 
Длинные куски кода помещайте под тегом [more], дабы дать возможность знатокам Inno Setup прочитать сам вопрос, а не пролистывать бесконечно длинные листинги скриптов в посте.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 18:01 23-04-2007 | Исправлено: Nekt, 00:33 25-09-2007
megarom



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron
Спасибо, так у меня получилось, вопрос в том криптуются ли остальные файлы?
И есть ли описалово на все эти флаги и язык?

Всего записей: 454 | Зарегистр. 18-07-2006 | Отправлено: 17:30 14-06-2007
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
megarom
Все остальные файлы криптуются.
Описание читай в русской справке в шапке.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 18:05 14-06-2007
megarom



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно ли сделать пакетное задание для инно?
Ну например брать из файла строки и вставлять в файл ридми и с сам скрипт.
А на выходе куча дистрибутивчиков с идивидуальными ридми и паролями.

Всего записей: 454 | Зарегистр. 18-07-2006 | Отправлено: 18:33 14-06-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, заранее извиняюсь за повторение. Скачал скрипт MusicButton для воспроизведения mp3 файлов при стандартном оформлении инсталлятора. Большая просьба выложите такой скрипт, но уже для воспроизведения трекерных модулей. Буду очень благодарен.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 18:53 14-06-2007 | Исправлено: Maks150988, 18:54 14-06-2007
iTASmania_Inc



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
Я уже выкладывал! Вроде бы...
http://data.cod.ru/1138589130
Там две текстуры музыкальных кнопок, выбирай любую!
 
Добавлено:
Собственно в форум
Покапался в старых сообщениях и нашёл скрипт от Genri, в котором он писал, что можно наложить на инсталлятор параметр Transparent! А можно наложить и на MessageBox'ы?
Или это фантастика?

Всего записей: 443 | Зарегистр. 29-04-2007 | Отправлено: 22:10 14-06-2007
Sero



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Или это фантастика?  

Нуууууу да!

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 00:59 15-06-2007 | Исправлено: Sero, 00:59 15-06-2007
iTASmania_Inc



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sero

Цитата:
Нуууууу да!

Злой ты, не мог обнадёжить!

Всего записей: 443 | Зарегистр. 29-04-2007 | Отправлено: 01:04 15-06-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iTASmania_Inc
Цитата:
нашёл скрипт от Genri, в котором он писал, что можно наложить на инсталлятор параметр Transparent
-- линк дай.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 01:09 15-06-2007
iTASmania_Inc



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=240
Пользуясь твоей добротой, хотелось бы совсем оборзеть и спросить, а можно на инсталлятор наложить Always on top, чтоб только сообщения не перекрывались инсталлом, а то без Transparent не сразу разберёшь

Всего записей: 443 | Зарегистр. 29-04-2007 | Отправлено: 01:14 15-06-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iTASmania_Inc
Цитата:
можно на инсталлятор наложить Always on top, чтоб только сообщения не перекрывались инсталлом
-- приемлемого способа я не знаю. Через хуки можно, через внешний таймер и FindWindowEx. Но это все слишком трудоемко. Частично можно решить таким образом. Но опять-таки - это не решит проблему нештатных ситуаций и их сообщений.
 
А вообще-то, хорошая программа в Always on top не нуждается  

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 03:46 15-06-2007
iTASmania_Inc



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
Частично можно решить таким  образом. Но опять-таки - это не решит проблему нештатных ситуаций и их сообщений.

А мне вполне хватит! СПАСИБО БОЛЬШОЕ!!!!!!!!!!!!!
 
Добавлено:

Цитата:
А вообще-то, хорошая программа в Always on top не нуждается

А кто тебе сказал, что я хорошие программы в инсталляторы пакую?

Всего записей: 443 | Зарегистр. 29-04-2007 | Отправлено: 08:30 15-06-2007
Unc1e

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос:
Как у Uninstall`а заменить WizardSmallBitmapImage на большую (но не WizardBitmapImage конечно), которая перекрывала бы PageNameLabel и PageDescriptionLabel? Примерно так, но чтобы работало:
 
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep=usUninstall then
  begin
   WizardForm.PageNameLabel.Enabled := False;
   WizardForm.PageDescriptionLabel.Enabled := False;
   WizardForm.WizardSmallBitmapImage.Top := 0;
   WizardForm.WizardSmallBitmapImage.Left := 0;
   WizardForm.WizardSmallBitmapImage.Width := 497;
   WizardForm.WizardSmallBitmapImage.Height := 58;
  end
end;
 
Заранее спасибо!

Всего записей: 434 | Зарегистр. 11-06-2007 | Отправлено: 14:33 15-06-2007
Forslay



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте Уважаемые пользователи и профессионалы по использованию программы Inno Setup 5XX.
==============
Я У вас новенький... У меня есть большая просьба - отнестись к моей просьбе очень отзывчиво, и главное что бы был результат.
==============
Некоторые азы, я вроде бы изучил, но в создании профессиональной инсталляционной системы, умения у меня ещё пока не хватает.
====================
У меня есть игровой проект, заключается он в модификации Counter-Strike 1.6.
То есть я делаю собственную сборку игры с некоторыми изменениями, ради интереса, перечисляю:
 
> Собственная полная русификация
> Изменение GUI, VGUI меню на более удобное
> Собственный забиндённый конфиг
> Отредактированный профиль ботов
> Постоянное обновление исполнителей и их библиотек от Steam
> А так же эмуляция Steam [Взлом Листен сервера]
===================================
Это самый важный список изменений, отличающийся от стандартной CS с патчем.
====================
Раньше я запаковывал проект в программу Smart Install Maker, но когда понял, что мне не хватает возможностей, сразу же обратился к Inno Setup.
========================
На 19.06.07 - намечен новый выпуск CS.
 
И для этого я хочу создать профессиональный красочный инсталлятор:
> Встроенная mp3 музыка + клавиши управления.
> Красивая Оболочка
> Выбор русской и английской версии
> (Снизу где пишеться Forslay Inc * 2007, что бы эту примочка была активна, при нажатии на неё - была переадресация на мой E-Mail.
> Хорошая заставка! Желательно какое нить слайд шоу!
 
Сдесь я перечислил всё, что покамись не в моих знаниях, умениях! Времени на изучение информации катострафически мало!  
======
У меня есть уже полу-готовый скрипт к инсталляции
 
 

Цитата:
[Setup]
AppName=Counter-Strike
AppVerName=Counter-Strike 1.6
AppPublisher=Forslay Inc, 2007 ©
AppPublisherURL=http://ataka.muravlenko.ru:8080/
AppSupportURL=http://ataka.muravlenko.ru:8080/
AppUpdatesURL=http://ataka.muravlenko.ru:8080/
DefaultDirName={pf}\Counter-Strike
DefaultGroupName=Counter-Strike
AllowNoIcons=yes
LicenseFile=C:\Program Files\Inno Setup 5\license.rtf
InfoBeforeFile=C:\Program Files\Inno Setup 5\Info-1.rtf
InfoAfterFile=C:\Program Files\Inno Setup 5\Info-2.rtf
OutputDir=C:\Documents and Settings\Forslay\Рабочий стол
OutputBaseFilename=CS
SetupIconFile=D:\Разроботка\Client\Примочки\Иконки\ICO\steam orb.ico
Compression=lzma
SolidCompression=no
WindowVisible=no
UserInfoPage=yes
WizardImageFile=Logo.bmp
WizardSmallImageFile=Forslay.bmp
 
[Registry]
Root: HKCU; SubKey: Software\Valve\Half-Life\cstrike\Settings; ValueType: string; ValueName: User Token 2; ValueData:
Root: HKCU; SubKey: Software\Valve\Half-Life\cstrike\Settings; ValueType: string; ValueName: User Token 3; ValueData:
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: string; ValueName: EngineDLL; ValueData: hw.dll
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: string; ValueName: User Token 2; ValueData:
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: string; ValueName: User Token 3; ValueData:
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: dword; ValueName: ScreenWindowed; ValueData: $00000000
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: dword; ValueName: CrashInitializingVideoMode; ValueData: $00000000
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: dword; ValueName: ScreenWidth; ValueData: $00000400
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: dword; ValueName: ScreenHeight; ValueData: $00000300
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: dword; ValueName: ScreenBPP; ValueData: $00000020
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: string; ValueName: ValveKey; ValueData: AAAAA-AAAAA-AAAAA-AAAAA-AAAAA
Root: HKCU; SubKey: Software\Valve\Half-Life\Settings; ValueType: dword; ValueName: EngineD3D; ValueData: $00000000
Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: LastContentProviderURL; ValueData: http://forslay.clan.su/cstrike/gfx/steam_banner.html
Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: Language; ValueData: English
Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: Rate; ValueData: 25000
Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: LastGameNameUsed; ValueData: Game CS by: sX89 Clan * Forslay Inc.
 
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
 
 
[Messages]
BeveledLabel=Forslay Inc, 2007 ©.
 
[CustomMessages]
UninstallProgram=Удаление %1
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "C:\Counter-Strike\hl.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Counter-Strike\*"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Program Files\Inno Setup 5\ISTask.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\Program Files\Inno Setup 5\splash.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\Program Files\Inno Setup 5\splash.wav"; DestDir: "{tmp}"; Flags: dontcopy
Source: compiler:callnsis.dll; Flags: dontcopy noencryption
Source: compiler:get_hw_caps.dll; Flags: dontcopy  noencryption
Source: compiler:AdvSplash.dll; Flags: dontcopy  noencryption
Source: compiler:isxbb.dll; Flags: dontcopy  noencryption
 
 
[Code]
//////////Проверка системных требований
const
  NeedSize = 400; //Прописать, сколько мегабайт необходимо
 
  DRIVE_UNKNOWN = 0;
  DRIVE_NO_ROOT_DIR = 1;
  DRIVE_REMOVEABLE = 2;
  DRIVE_FIXED = 3;
  DRIVE_REMOTE = 4;
  DRIVE_CDROM = 5;
  DRIVE_RAMDISK = 6;
  //Все эффекты анимации
  AW_FADE_IN = $00080000;
  AW_FADE_OUT = $00090000;
  AW_SLIDE_IN_LEFT = $00040001;
  AW_SLIDE_OUT_LEFT = $00050002;
  AW_SLIDE_IN_RIGHT = $00040002;
  AW_SLIDE_OUT_RIGHT = $00050001;
  AW_SLIDE_IN_TOP = $00040004;
  AW_SLIDE_OUT_TOP = $00050008;
  AW_SLIDE_IN_BOTTOM = $00040008;
  AW_SLIDE_OUT_BOTTOM = $00050004;
  AW_DIAG_SLIDE_IN_TOPLEFT = $00040005;
  AW_DIAG_SLIDE_OUT_TOPLEFT = $0005000A;
  AW_DIAG_SLIDE_IN_TOPRIGHT = $00040006;
  AW_DIAG_SLIDE_OUT_TOPRIGHT = $00050009;
  AW_DIAG_SLIDE_IN_BOTTOMLEFT = $00040009;
  AW_DIAG_SLIDE_OUT_BOTTOMLEFT = $00050006;
  AW_DIAG_SLIDE_IN_BOTTOMRIGHT = $0004000A;
  AW_DIAG_SLIDE_OUT_BOTTOMRIGHT = $00050005;
  AW_EXPLODE = $00040010;
  AW_IMPLODE = $00050010;
///////////
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;    
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
 
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
 
 
var
  ListBox: TListBox;
 
function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): Boolean;
  external 'AnimateWindow@user32 stdcall';
 
procedure ListBoxOnClick(Sender: TObject);
var
  NewLetter, OldString: String;
  i: Integer;
begin
  for i:= 0 to ListBox.Items.Count-1 do
    begin
      if ListBox.Selected[i] then
        begin
          NewLetter:= Copy(ListBox.Items[i], 0, 1);
          OldString:= Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
          WizardForm.DirEdit.Text:= NewLetter + OldString;
        end;
    end;
end;
 
 function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';
 
function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';
 
function GetVideoCardName(): PChar;
external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';
 
function GetSoundCardName(): PChar;
external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';
 
function DetectHardware(): Integer;
external 'hwc_DetectHardware@files:get_hw_caps.dll stdcall';
 
function GetHardDriveFreeSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDriveName(hdd: integer): PChar;
external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
 
function GetHardDriveTotalSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDrivesCount(): Integer;
external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';
 
function GetSoundCards(): Integer;
external 'hwc_GetSoundCards@files:get_hw_caps.dll stdcall';
 
function GetSystemPage(): Integer;
external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
 
function GetSystemPhys(): Integer;
external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
 
function GetVidMemLocal(): Integer;
external 'hwc_GetVidMemLocal@files:get_hw_caps.dll stdcall';
 
function GetVidMemNonLocal(): Integer;
external 'hwc_GetVidMemNonLocal@files:get_hw_caps.dll stdcall';
 
function GetVideoCardDev(): Integer;
external 'hwc_GetVideoCardDev@files:get_hw_caps.dll stdcall';
 
function GetVideoCardVen(): Integer;
external 'hwc_GetVideoCardVen@files:get_hw_caps.dll stdcall';
 
function  DelSp(const s:string):string;// функция удаления пробелов в начале строки
var
  c, i: integer;
  stt, st, st1: string;
begin
  c := 0;
  st := s;
 
  for i := 1 to Length(st) do
  begin
 
    stt := copy(st, i, 1);
    if (stt = ' ') and (c >= 1) then
    begin
      st1 := st1;
      c := c + 1;
    end
    else if (stt = ' ') and (c = 0) then
    begin
      c := c + 1;
      st1 := st1 + stt;
    end
    else if (stt <> ' ') then
    begin
      c := 0;
      st1 := st1 + stt;
    end
  end;
 
  Result:= st1;
end;
 
function CheckSystemPage(PreviousPageId: Integer): Integer;
var Page: TWizardPage;
    ProcessorName:string;
    Processor,VideoCardPanel,AudioCardPanel,RAMPanel,PageFilePanel: TPanel;
    ProcessorNamePanel,VideoCardNamePanel,AudioCardNamePanel,RAMTotalPanel,PageFileTotalPanel: TPanel;
    ProcessorMHZ: Cardinal;
    StaticText,StaticText2:TNewStaticText;
    VidRam:integer;
begin
RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','ProcessorNameString', ProcessorName);
RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','~MHz', ProcessorMHZ);
GetVidMemLocal;
GetSoundCards;
 
Page := CreateCustomPage(PreviousPageId,'Апаратное Обеспечение','Программа установки обнаружила следуюшие необходимые компоненты');
 
StaticText:=TNewStaticText.Create(Page);
with StaticText do
begin
Parent:=Page.Surface;
Caption:='Все компоненты удовлетворяют требованиям игры.';
Left:=0;
Top:=5;
AutoSize:=True;
end;
 
StaticText2:=TNewStaticText.Create(Page);
with StaticText2 do
begin
Parent:=Page.Surface;
Caption:='Когда будете готовы продолжить установку, нажмите Далее'
Left:=0;
Top:=220;
AutoSize:=True;
end;
 
Processor := TPanel.Create(Page);
with Processor do
begin
Parent := Page.Surface;
Caption := ' Ваш процессор';
Left := ScaleX(0);
Top := ScaleY(32);
alignment:=taLeftJustify;
Width := ScaleX(121);
Height := ScaleY(25);
BevelInner := bvLowered;
TabOrder := 0;
end;
 
ProcessorNamePanel := TPanel.Create(Page);
with ProcessorNamePanel do
begin
Parent := Page.Surface;
Caption :=DelSP(ProcessorName)+'  '+IntToStr(ProcessorMHZ)+'MHz' ;  //новое обработанное значение строки
// Caption :=ProcessorName+'  '+IntToStr(ProcessorMHZ)+'MHz' ;
Left := ScaleX(128);
Top := ScaleY(32);
alignment:=taLeftJustify;
Width := ScaleX(281);
Height := ScaleY(25);
BevelInner := bvLowered;
Color :=$ccffcc;
TabOrder := 1;
end;
 
if ProcessorMHZ<1800then
begin
ProcessorNamePanel.Color:=clRed;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
 
VideoCardPanel:=TPanel.Create(Page);
with VideoCardPanel do
begin
Parent:=Page.Surface;
Caption:=' Ваша видеокарта';
Left:=ScaleX(0);
alignment:=taLeftJustify;
Top:=Processor.Top+27;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
end;
 
VideoCardNamePanel:=TPanel.Create(Page);
with VideoCardNamePanel do
begin
Parent:=Page.Surface;
Caption:=' '+GetVideoCardName; //+'    ОЗУ-'+inttostr(round(GetVidMemLocal/1000000))+' МБ';
//Caption:='    ОЗУ-'+inttostr(GetVidMemLocal)+' МБ';
VidrAM:= GetVidMemLocal/1000000;
 
if VidRam>127 then
 begin
  if VidRam<200 then  Caption:=Caption+' 128 МB'
  else if VidRam<300 then  Caption:=Caption+' 256 МB'
    else if VidRam<400 then  Caption:=Caption+' 384 МB'
      else if  VidRam>500 then  Caption:=Caption+' 512 МB';
 end;
 
Left:=ScaleX(128);
Top:=VideoCardPanel.Top;
alignment:=taLeftJustify;
Width:=ScaleX(281);
Height:=ScaleY(25);
BevelInner:=bvLowered;
Color :=$ccffcc;
TabOrder:=1;
end;
 
if GetVidMemLocal<127000000 then //128MB
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
VideoCardNamePanel.Color:=clRed;
end;
 
AudioCardPanel:=TPanel.Create(Page);
with AudioCardPanel do
begin
Parent:=Page.Surface;
Caption:=' Ваша звуковая карта';
Left:=ScaleX(0);
Top:=VideoCardPanel.Top+27;
alignment:=taLeftJustify;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
end;
 
AudioCardNamePanel:=TPanel.Create(Page);
with AudioCardNamePanel do
begin
Parent:=Page.Surface;
Caption:=' '+GetSoundCardName;
Left:=ScaleX(128);
alignment:=taLeftJustify;
Top:=AudioCardPanel.Top;
Width:=ScaleX(281);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color :=$ccffcc;
end;
 
if
GetSoundCards=0 then
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
AudioCardNamePanel.Color:=clRed;
end;
 
 
RAMPanel:=TPanel.Create(Page);
with RAMPanel do
begin
Parent:=Page.Surface;
Caption:=' Оперативная память'
Left:=0;
Top:=AudioCardPanel.Top+27;
alignment:=taLeftJustify;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
end;
 
RAMTotalPanel:=TPanel.Create(Page);
with RAMTotalPanel do
begin
Parent:=Page.Surface;
Caption:=' '+IntToStr(GetSystemPhys+1) +' MB'
Left:=AudioCardNamePanel.Left;
Top:=RAMPanel.Top;
alignment:=taLeftJustify;
Width:=AudioCardNamePanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color :=$ccffcc;
end;
 
if GetSystemPhys+1<256 then
begin
RAMTotalPanel.Color:=clRed;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
 
PageFilePanel:=TPanel.Create(Page);
with PageFilePanel do
begin
Parent:=Page.Surface;
Caption:=' Ваш файл подкачки';
alignment:=taLeftJustify;
Left:=0;
Top:=RAMPanel.Top+27;
Width:=RAMPanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
end;
 
PageFileTotalPanel:=TPanel.Create(Page);
with PageFileTotalPanel do
begin
Parent:=Page.Surface;
Caption:=' '+IntToStr(GetSystemPage)+' MB';
Left:=RAMTotalPanel.Left;
Top:=PageFilePanel.Top;
alignment:=taLeftJustify;
Width:=RAMTotalPanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color :=$ccffcc;
end;
 
if GetSystemPage<800 then
begin
PageFileTotalPanel.Color:=clRed;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
 
Result := Page.ID;
end;
//////////////////
 
var
  KeyPage: TInputQueryWizardPage;
  ProgressPage: TOutputProgressWizardPage;
function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
begin
     Result := True;
  if CurPageID = KeyPage.ID then begin
    ProgressPage.SetText('Проверка введенного пароля...', '');
    ProgressPage.SetProgress(0, 0);
    ProgressPage.Show;
    try
      for I := 0 to 10 do begin
        ProgressPage.SetProgress(I, 10);
        Sleep(100);
      end;
    finally
      ProgressPage.Hide;
    end;
    if KeyPage.Values[0] = 'Forslay Inc' then
      Result := True
    else begin
      MsgBox('Пароль не прошёл валидатность. Пожалуйста введите правильный пароль.', mbError, MB_OK);
      Result := False;
    end;
  end else
    Result := True;
end;
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
 
procedure callplug(parentwnd: Integer; pluginname,funcname,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10: PChar);
 external 'callplug@files:callnsis.dll stdcall';
 
 
procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox('Для регестрации данной копии игры, обратитесь к автору даннной модификации.', mbInformation, mb_Ok);
MsgBox('Если Вы хотите это сделать сейчас, то обратитесь к автору [Forslay] следующими путями.', mbInformation, mb_Ok);
MsgBox('ICQ номер: 483-064-648', mbInformation, mb_Ok);
MsgBox('E-Mail: Forslay@inbox.ru', mbInformation, mb_Ok);
MsgBox('Либо позвоните ему на сотовый прямо сейчас: +79091954089, а так же домашний: +73493824329', mbInformation, mb_Ok);
MsgBox('После того как свяжитесь, сообщите свои данные: Имя и Фамилию, а так же Организацию', mbInformation, mb_Ok);
end;
 
procedure URLLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://ataka.muravlenko.ru:8080', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
 
procedure DirOnClick(Sender: TObject);
var
  res: Boolean;
  UserSelectDir: string;
begin
  UserSelectDir := WizardForm.DirEdit.Text;
  res := BrowseForFolder('Выберите директорию для установки и нажмите ''ОК''', UserSelectDir, True);
  if res then
  begin
    WizardForm.DirEdit.Text := UserSelectDir;
  end;
end;
 
 
 
procedure InitializeWizard();
var
  AboutButton, CancelButton: TButton;
  URLLabel: TNewStaticText;
  BackgroundBitmapImage: TBitmapImage;
  BackgroundBitmapText: TNewStaticText;
begin
  CheckSystemPage(wplicense)
  CancelButton := WizardForm.CancelButton;
 
  AboutButton := TButton.Create(WizardForm);
  AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;
  AboutButton.Top := CancelButton.Top;
  AboutButton.Width := CancelButton.Width;
  AboutButton.Height := CancelButton.Height;
  AboutButton.Caption := 'Регестрация';
  AboutButton.OnClick := @AboutButtonOnClick;
  AboutButton.Parent := WizardForm;
 
  URLLabel := TNewStaticText.Create(WizardForm);
  URLLabel.Caption := 'Сайт проекта';
  URLLabel.Cursor := crHand;
  URLLabel.OnClick := @URLLabelOnClick;
  URLLabel.Parent := WizardForm;
  URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
  URLLabel.Font.Color := clBlue;
  URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
  URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);
 
  BackgroundBitmapImage := TBitmapImage.Create(MainForm);
  BackgroundBitmapImage.Left := 50;
  BackgroundBitmapImage.Top := 90;
  BackgroundBitmapImage.AutoSize := True;
  BackgroundBitmapImage.Bitmap := WizardForm.WizardBitmapImage.Bitmap;
  BackgroundBitmapImage.Parent := MainForm;
 
  BackgroundBitmapText := TNewStaticText.Create(MainForm);
  BackgroundBitmapText.Left := BackgroundBitmapImage.Left;
  BackgroundBitmapText.Top := BackgroundBitmapImage.Top + BackgroundBitmapImage.Height + ScaleY(8);
  BackgroundBitmapText.Caption := 'TBitmapImage';
  BackgroundBitmapText.Parent := MainForm;
 
 
KeyPage := CreateInputQueryPage(wpWelcome,
    'Персональная информация', 'Какой пароль необходим для продолжения?',
    'Вы должны ввести пароль, который позволит дальнейший ход выполнения установочных действий. ' +
    'Пароль находится в сопутствующем readme.txt.');
  KeyPage.Add('Пароль:', False);
  ProgressPage := CreateOutputProgressPage('Персональная информация',
    'Какой пароль необходим для продолжения?');
  ExtractTemporaryFile('splash.bmp')
  ExtractTemporaryFile('splash.wav')
  ExtractTemporaryFile('AdvSplash.dll')
  callplug(0,ExpandConstant('{tmp}\AdvSplash.dll'),'show','1500','4000','2500','-1',ExpandConstant('{tmp}\splash'),'','','','','')
  end;
 
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';
 
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
 
//**************************************************//
function InitializeSetup(): Boolean;
begin
  If RunTask('hl.exe', false) then
    begin
      if MsgBox('В данный момент запущена игра Counter-Strike, для продолжения установки я её вырублю. Ок?', mbInformation, mb_YesNo) = idYes then
         begin
           KillTask('hl.exe');
           Result:= True;
         end else
          Exit;
    end;
Result:=True;
end;
 
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpLicense then
begin
  WizardForm.BackButton.Enabled := False;
end
else
If CurPageID=wpInfoBefore then
begin
  WizardForm.BackButton.Enabled := True;
end;
end;
 
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
 var
 hWnd: Integer;
begin
Cancel:=False;
Confirm:=False;
hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
  if MessageBox(hWnd, 'Вы действительно хотите отменить установку игры?', 'Выход из установки', MB_YESNO or $0) = idYes
 then
  Cancel:=true;
end;
 
function CheckSerial(Serial: String): Boolean;
var
 mask:string;
 i:Integer;
begin
Result:=True;
mask:='####-####-##****';
If Length(Serial)<>Length(mask) then
begin
 Result:=False;
 exit;
end;
For i:=1 to Length(mask) do
begin
 If StrGet(mask, i)='#' then
 If not ((Ord(StrGet(Serial, i))>=48) and (Ord(StrGet(Serial, i))<=57)) then
 begin
  Result:=False;
  exit;
 end;
 If StrGet(mask, i)='*' then
 If not ((StrGet(Serial, i)>='A') and (StrGet(Serial, i)<='Z')) then
 begin
  Result:=False;
  exit;
 end;
end;
end;
 
 
 
//////////////Нажатия на Beveled
procedure BevelLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.chuvakstepan.xost.ru', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
///////////////////////////
 
//////////////Нажатия на Chuvakstepan Inc
procedure LabelCOMP(Sender: TObject);
 var
 hWnd: Integer;
begin
MessageBox(hWnd, 'Что ты хотел, нажав на эту штуку?', 'Выход из установки', MB_OK or $0)
end;
///////////////////////////
 
[Icons]
Name: "{group}\Counter-Strike"; Filename: "{app}\hl.exe"
Name: "{group}\{cm:ProgramOnTheWeb,Counter-Strike}"; Filename: "http://ataka.muravlenko.ru:8080/"
Name: "{group}\{cm:UninstallProgram,Counter-Strike}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Counter-Strike"; Filename: "{app}\hl.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Counter-Strike"; Filename: "{app}\hl.exe"; Tasks: quicklaunchicon
 
[Run]
Filename: "{app}\hl.exe"; Description: "{cm:LaunchProgram,Counter-Strike}"; Flags: shellexec postinstall skipifsilent

 
Поэтому прошу Вашей помощи! Профессионалы! Пожалуйста срочно помогите мне!!!!! Я уже просто незнаю на что надееться! У самого ни чо невыходит .  
 
Очень буду благодарен! Заранее Спасибо!!!!!!
 

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 17:07 15-06-2007 | Исправлено: Forslay, 17:30 15-06-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Forslay

Цитата:
И для этого я хочу создать профессиональный красочный инсталлятор:  
> Встроенная mp3 музыка + клавиши управления.  
> Красивая Оболочка  
> Выбор русской и английской версии  
> (Снизу где пишеться Forslay Inc * 2007, что бы эту примочка была активна, при нажатии на неё - была переадресация на мой E-Mail.  
> Хорошая заставка! Желательно какое нить слайд шоу!

Вот скачай руководство от Kindly [оно есть в шапке], там есть ответы на все твои вопросы)
 
Добавлено:
Всем привет!
У меня такая проблема:
Я решил добавить выбор языков в свой сетап [Russian & English], и проблема заключаеться в том что я использую подсказки для кнопок управления музыкой + есть новые диалоговые страницы - и естественно там все написанно по Русски, а вот если я выберу Английский язык то получаеться несоответсвие выбран английский, а на этих местах написанно по Русски.  
Как сделать так чтобы если выбран Английский то текст у подсказок и отдельных страниц будет на Английском, а если выбран Русский то на русском?

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 19:36 15-06-2007
Sero



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
 

Цитата:
Я решил добавить выбор языков в свой сетап [Russian & English], и проблема заключаеться в том что я использую подсказки для кнопок управления музыкой + есть новые диалоговые страницы - и естественно там все написанно по Русски, а вот если я выберу Английский язык то получаеться несоответсвие выбран английский, а на этих местах написанно по Русски.  
Как сделать так чтобы если выбран Английский то текст у подсказок и отдельных страниц будет на Английском, а если выбран Русский то на русском?

 
Вот пример:
код

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 22:26 15-06-2007
paRUS_51



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь подскажите, пожалуйста, как сделать так чтобы показывались проценты вовремя установки.
Заранее ОГРОМНОЕ СПАСИБО!!!!!

Всего записей: 7 | Зарегистр. 06-06-2007 | Отправлено: 23:25 15-06-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sero
Спасибо!
А вот как сделать это подсказаок у кнопок управления MP3 и для RTF лицензии и readme.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 23:53 15-06-2007 | Исправлено: NightW0lf, 23:55 15-06-2007
Sero



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
 

Цитата:
А вот как сделать это подсказаок у кнопок управления MP3  

Вот:

Код:
 
[CustomMessages]
eng.StopButtonHint=Stop
rus.StopButtonHint=Стоп
 
eng.PlayButtonHint=Play
rus.PlayButtonHint=Воспроизведение
 
eng.PauseButtonHint=Pause
rus.PauseButtonHint=Пауза
 
[Code]
.....
.....
PlayButton := TButton.Create(WizardForm);
      PlayButton.Left := 5;
      PlayButton.Top := 335;
      PlayButton.Width := 50;
      PlayButton.Height := 20;
      PlayButton.Caption := 'Play';
      PlayButton.OnClick := @PlayButtonOnClick;
      PlayButton.Parent := WizardForm;
      PlayButton.Cursor := crHand;
      PlayButton.ShowHint := True;
      PlayButton.Hint := ExpandConstant('{cm:PlayButtonHint}')
 
      PauseButton := TButton.Create(WizardForm);
      PauseButton.Left := 58;
      PauseButton.Top := 335;
      PauseButton.Width := 50;
      PauseButton.Height := 20;
      PauseButton.Caption := 'Pause';
      PauseButton.OnClick := @PauseButtonOnClick;
      PauseButton.Parent := WizardForm;
      PauseButton.Cursor := crHand;
      PauseButton.ShowHint := True;
      PauseButton.Hint := ExpandConstant('{cm:PauseButtonHint}')
 
      StopButton := TButton.Create(WizardForm);
      StopButton.Left := 111;
      StopButton.Top := 335;
      StopButton.Width := 50;
      StopButton.Height := 20;
      StopButton.Caption := 'Stop';
      StopButton.OnClick := @StopButtonOnClick;
      StopButton.Parent := WizardForm;
      StopButton.Cursor := crHand;
      StopButton.ShowHint := True;
      StopButton.Hint := ExpandConstant('{cm:StopButtonHint}')
......
......
 

 
А вот для лицензии и ридми не знаю, но такая фишка есть в ISSI

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 00:36 16-06-2007 | Исправлено: Sero, 00:59 16-06-2007
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, помогите, плиз! Нужно, чтоб секция [Registry] обработалась (вносились данные в реестр) после [Run], даже, если выбрана галка 'postinstall'. Реально?
 
Ситуация такая, что в секции [Run], выполняется некий *.exe с ключами, так программа себя регистрирует в тихом режиме, так вот эта регистрация перезаписывает значения реестра, которые указаны у меня в [Registry].
 
Сразу скажу, что выполнения команды regedit /s settings.reg, после выполнения всех команд запусков, не выход, так как значения реестра имеют переменные (пути к файлам и т.д.).

Всего записей: 3701 | Зарегистр. 29-01-2005 | Отправлено: 04:45 16-06-2007
paRUS_51



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь подскажите, пожалуйста, как сделать так чтобы показывались проценты вовремя установки.  
Заранее ОГРОМНОЕ СПАСИБО!!!!!

Всего записей: 7 | Зарегистр. 06-06-2007 | Отправлено: 06:22 16-06-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (25-09-2007 17:33): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru